我目前有一个使用Postgres的Rails应用程序,将所有表存储在默认的public
模式下。
我正在设置更多租户架构,所以我想将所有这些表从public
移动到另一个模式foo
。
我正在使用以下Rails Migration来实现此目的 -
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
可能产生的影响我并不清楚。
谢谢!