将 postgresql db 的架构名称从 "public" 修改为 "my-project"



i使用 ActiveRecord将更改迁移到Postgresql db。默认情况下,模式名称为" public"。在哪里将其重命名为" my-project-name"的最佳方法。?

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模式。要重命名模式,您还必须具有数据库的创建特权。

最新更新