从" public"修改postgresql db的模式名称。到我的项目"

时间:2017-04-18 08:21:19

标签: ruby-on-rails postgresql database-migration

我使用ActiveRecord将更改迁移到postgresql db。默认情况下,架构名称为" public"。将此名称重命名为" my-project-name"的最佳方式在哪里。?

1 个答案:

答案 0 :(得分:3)

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权限。