web2pyでデータベーステーブルの名前を変更するには? 直接的な方法がない場合、これを行う最善の回避策は何ですか? 私が見つけたのは、このスレッドhttp://groups.google.com/group/web2py/browse_thread/thread/ef724508324347e2/7966a423c293bdecだけで、web2py の作成者は簡単な方法がないと言っています。
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 を削除
アプリケーションを再起動します。