【发布时间】:2016-01-12 00:07:17
【问题描述】:
我目前有一个 Rails 应用程序,它使用 Postgres 并将它的所有表存储在默认的 public 架构下。
我正在建立一个更多的多租户架构,所以我想将所有这些表从public 移动到另一个架构foo。
我正在使用以下 Rails 迁移来完成此操作 -
class MovePublicToFoo < ActiveRecord::Migration
def up
[
"ALTER SCHEMA public RENAME TO foo;",
"CREATE SCHEMA public;"
].each { |s| ActiveRecord::Base.connection.execute(s) }
end
def down
[
"DROP SCHEMA public;",
"ALTER SCHEMA foo RENAME TO public;"
].each { |s| ActiveRecord::Base.connection.execute(s) }
end
end
这是在 Postgres 中处理此问题的正确方法吗?
我不知道盲目地移动默认架构有什么危险,以及可能对search_path 产生什么影响(我也不太确定这样做有什么作用)
谢谢!
【问题讨论】:
标签: ruby-on-rails postgresql schema rails-migrations