0
我使用ActiveRecord
將更改遷移到postgresql db。模式名稱默認爲「public」。將其重命名爲「my-project-name」的最佳方法在哪裏?將postgresql db的模式名稱從「public」修改爲「my-project」
我使用ActiveRecord
將更改遷移到postgresql db。模式名稱默認爲「public」。將其重命名爲「my-project-name」的最佳方法在哪裏?將postgresql db的模式名稱從「public」修改爲「my-project」
ActiveRecord::Migration
中沒有這樣的方法來更改方案名稱,但您可以使用plain sql command
。
首先生成遷移文件:
$> bundle exec rails g migration RenameSchema
然後打開它,並添加:
class RenameSchema < ActiveRecord::Migration
def up
execute "ALTER SCHEMA you_old_name RENAME TO you_new_name"
end
def down
execute "ALTER SCHEMA you_new_name RENAME TO you_old_name"
end
end
有了,移民可以更改名稱和回滾回來。
注意:您必須擁有架構才能使用ALTER SCHEMA。要重命名模式,您還必須具有數據庫的CREATE權限。