2

web2pyでデータベーステーブルの名前を変更するには? 直接的な方法がない場合、これを行う最善の回避策は何ですか? 私が見つけたのは、このスレッドhttp://groups.google.com/group/web2py/browse_thread/thread/ef724508324347e2/7966a423c293bdecだけで、web2py の作成者は簡単な方法がないと言っています。

4

1 に答える 1

1

web2pyの実行中にデータベーススキーマを変更するには

db.executesql('ALTER TABLE old_name RENAME TO new_name;')

これはあなたのコードを変更しません! コードを変更できるのはあなただけです。

したがって、テーブル名が見苦しかったりあいまいだったりして、コードをリファクタリングしたいなどの理由でこれを 1 回だけ行う場合は、web2py を使用してデータベース スキーマ内のテーブル名を変更しない方がよいでしょう。これが私がそれを行う方法です。

  • アプリケーションを停止します

  • sqlite3 コンソール プログラム、または代わりに使用するデータベース管理プログラムを使用して、db スキーマのテーブルの名前を変更します。データベース管理プログラムとして web2py を使用することに慣れているので、これが本当の問題かもしれません。さて、sqlite3 コンソール コンソール プログラムの使い方を学ぶ必要があると思います。

  • モデルのコードを変更する

  • アプリケーションを再起動します。

しかし、データベースを管理するためだけに web2py を使用することを強く主張する場合は、次のように動作するはずです:

  • 「table_rename」などの新しいコントローラーを作成します行を追加します

    db.executesql('ALTER TABLE old_name RENAME TO new_name;')

コントローラーに

  • application/table_rename への参照

  • アプリケーションを停止します

  • モデルコードを変更する

  • table_rename を削除

  • アプリケーションを再起動します。

于 2011-09-27T19:23:35.553 に答える