1
我應該把"PRAGMA FOREIGNS KEYS = ON;"
放在rails 4.0中?Rails:在哪裏把PRAGMA FOREIGNS KEYS = ON for SQLite
我知道它的連接設置,所以我必須讓rails在任何時候刪除它,但我不知道該把它放在哪裏。我嘗試在選項中的database.yml,它不工作。不能谷歌在哪裏把它。我希望它能夠級聯刪除工作。
我應該把"PRAGMA FOREIGNS KEYS = ON;"
放在rails 4.0中?Rails:在哪裏把PRAGMA FOREIGNS KEYS = ON for SQLite
我知道它的連接設置,所以我必須讓rails在任何時候刪除它,但我不知道該把它放在哪裏。我嘗試在選項中的database.yml,它不工作。不能谷歌在哪裏把它。我希望它能夠級聯刪除工作。
的語法是這樣的:
drop table if exists db_name.table_name
中是否存在地方和DB_NAME。零件是可選的。這裏沒有CASCADE,因此SQLite在使用DROP TABLE時根本不支持CASCADE,並且沒有什麼可以添加它(除非你想破解SQLite C源代碼並自己添加它)。使用SQLite時你必須接受一些限制,這是其中之一。
如果你想爲SQLite和MySQL使用一種遷移,那麼你必須檢查哪個數據庫正在被使用,並執行適當的SQL或找到可在任何地方工作(即手動執行CASCADE)的東西。檢查您正在使用的數據庫的簡單方法是:
case connection
when ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
# PostgreSQL things go here
when ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter
# MySQL things go here
when ActiveRecord::ConnectionAdapters::SQLiteAdapter
# SQLite things go here
...
end