的順序,我用Rails 3.2.8,並有Rails的生成development_structure.sql - 自卸
config.active_record.schema_format = :sql
在我的config/application.rb中
。
在Oracle 11g數據庫中,我定義一個表,依賴於用戶定義的函數虛擬列:
CREATE TABLE BAR (
ID NUMBER(19,0) NOT NULL,
STATUS NUMBER(19, 0) DEFAULT 1,
CALCULATED_STATUS NUMBER(19,0) GENERATED ALWAYS AS (MY_FUNCTION(STATUS)) VIRTUAL)
當耙執行分貝:測試:clone_structure(任務:TOP =>默認=>規範=>分貝:測試:clone_structure),我打:
OCIError:ORA-00904: 「FOO」 「創建my_function」:無效的標識符:CREATE TABLE 「BAR」(...
我認爲正在發生的事情是db:structure:dump在開發中的函數之前導出表structure.sql,CREATE FUNCTION MY_FUNCTION出現在CREATE TABLE BAR語句之後。
我是否必須進入monkeypatch db:structure:dump如何工作?
謝謝。
我發現Rails架構翻車機非常天真,很容易被任何不是表格的東西所迷惑。我不得不做大量的補丁來處理觸發器,視圖和全文索引,而不會完全爆炸。不過,我希望你能找到一個標準的解決方案。 – tadman
你通常在哪裏製作補丁?我一直在尋找解決這個問題的方法,但我一直在發現自己達到了相同的結論。 – ayang
第一步是創建一個可以完成這個工作的'config/initializer'文件。如果它有效並且你想正式化它,那麼把它轉換成一個完全成熟的寶石。 – tadman