我目前有一個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
沒問題;祝你好運! –