ruby-on-rails - 将 postgresql 数据库的模式名称从 "public"修改为 "my-project"

标签 ruby-on-rails postgresql database-migration

我使用 ActiveRecord 将更改迁移到 postgresql 数据库。模式名称默认为“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 SCHEMA。要重命名架构,您还必须拥有数据库的创建权限。

关于ruby-on-rails - 将 postgresql 数据库的模式名称从 "public"修改为 "my-project",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43467124/

相关文章:

ruby-on-rails - 如何将 sqlite 数据库转换为 JSON

javascript - RoR : destroy. js.erb 未与销毁操作一起运行

c# - Npgsql 按名称将参数传递给存储函数

postgresql - 自动递增,但忽略列中的现有值

mysql - 从 has_one 关联中调用一个值

ruby-on-rails - 让 Rails 在子目录中查找 .mobile 文件?

node.js - PostgreSQL 根据分组数据统计数据

python - 在 Postgres 和 MySQL 之间自动转储和恢复数据

amazon-web-services - 使用 AWS Amplify 更新 DynamoDB 架构

sql - 将 Oracle CONNECT BY 迁移到 postgresql 10