2016-09-08 14 views
5

廃止されたテーブル列をデータベースから削除する便利な方法はありますか? PHPMyADMINにログインして手動で列を削除するのではなく、よりコンベンションベースのソリューションがあるのだろうかと思います。SilverStripeで廃止されたデータベース列を削除する方法

SilverStripe-流暢をインストールし、接頭辞_nz-NZで余分な翻訳列を追加するために、各SiteTreeレコードを分割します余分なロケール(たとえば、NZ-NZ)モジュールを追加します。余分なロケール(nz-NZ)を削除したとすると、その列は/ dev/buildの後に残ります。

+3

私は流暢な解決策はわかりませんが、そうするタスクを書くことができます。流暢ですでに作業を参照してください: \t [流暢-タスク]を対象に(https://github.com/tractorcow/silverstripe-fluent/tree/master/code/tasks) ここでは、2つの関連するモジュール: \t [silverstripe-version-truncator](https://github.com/axllent/silverstripe-version-truncator) \t [silverstripe-artefactcleaner](https://github.com/oddnoc/silverstripe-artefactcleaner) – munomono

答えて

1

この機能を搭載したバージョン2.4の素晴らしいモジュールDBPlumberがありましたが、あなたはそれ以降のバージョンを使用していると思います!これがV3用にアップグレードされた場合は素晴らしいことでしょう。

モジュールartefact cleanerが理想的です。 githubページの説明は

となります。SilverStripe データベース内の使用されていないテーブルとフィールドを検索し、必要に応じて削除します。

SilverStripeアプリケーションの開発中に、 データオブジェクトクラスを削除するか、データオブジェクトからフィールドを削除するのが一般的です。この は、データベース内の廃止された列とテーブルを残します。これらの 列またはテーブルには、依然として必要なデータが含まれている可能性がありますので、 SilverStripeフレームワークは自動的にそれらを削除しません。このタスク は、廃止された列とテーブルをSQL DROPおよび ALTERコマンドの形式で表示します。また、削除する方法もあります。それを行うと、 は元に戻すことはできませんので、常に最初にバックアップを作成してください。

関連する問題