我目前有一个Rails应用程序,它使用Postgres并将其所有表格存储在默认的public
模式下。Postgres + Rails - 将所有表格从一个模式迁移到另一个模式的正确方法
我正在建立更多的多租户体系结构,因此我想将所有这些表从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
什么影响(我不太清楚这是什么会那样做)
谢谢!
你说得对。我一直在尝试它,并遇到非常微妙的问题,这让我很头疼。感谢您的意见。 – user2490003
没问题;祝你好运! –