3

postgresqlを使用したマルチテナントアプリケーションレールがあります。スキーマ(スキーマ名=サブドメイン)を削除し、スキーマを削除またはテーブル化します。

コントローラのプリミティブコード、wkwkwk。account_controller.rb

def destroy
        @account = Account.find(params[:id])
        conn = ActiveRecord::Base.connection
        conn.execute("DROP SCHEMA "+@account.subdomain)
    end

エラーメッセージ

ActiveRecord::StatementInvalid in AccountsController#destroy

PG::Error: ERROR:  cannot drop schema subdomain1 because other objects depend on it
DETAIL:  table articles depends on schema subdomain1
table gambarinfos depends on schema subdomain1
table pages depends on schema subdomain1
table redactor_assets depends on schema subdomain1
table schema_migrations depends on schema subdomain1
table usersekolahs depends on schema subdomain1
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
: DROP SCHEMA subdomain1

何か案は?

どうも

4

1 に答える 1

2

で解決した問題

CASCADEを追加conn.execute("DROP SCHEMA "+@account.subdomain+" CASCADE")

于 2012-12-17T19:12:02.193 に答える