0

モデルに新しいフィールドを追加しました。djangomanage.pyから移行を印刷するにはどうすればよいですか(テーブルステートメントの変更)。次のis_tagは新しいフィールドです。

sqlallを実行すると、次の出力が得られます。altertableコマンドを取得するにはどうすればよいですか。

 root@rajeev-laptop:/opt/labs/labs_site# python manage.py sqlall content
 BEGIN;
 CREATE TABLE `content_content` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(255) NOT NULL,
`uploaded_by_id` integer NOT NULL,
`is_local` integer NOT NULL,
`access` integer NOT NULL,
`fq_name` varchar(255) NOT NULL,
`description` longtext NOT NULL,
`is_tag` bool NOT NULL,
`timestamp` datetime NOT NULL
 )
 ;
    ALTER TABLE `content_content` ADD CONSTRAINT `uploaded_by_id_refs_id_4f9cfefd` FOREIGN KEY (`uploaded_by_id`) REFERENCES `users_userprofile` (`id`);
   CREATE INDEX `content_content_1bc5ce19` ON `content_content` (`uploaded_by_id`);
 COMMIT;
4

1 に答える 1

2

syncdbテーブルを変更したり、ドキュメント自体の言葉で変更したりすることはありません。

syncdbは、まだインストールされていないモデルのテーブルのみを作成します。インストール後にモデルクラスに加えられた変更に一致するALTERTABLEステートメントを発行することはありません。モデルクラスとデータベーススキーマへの変更には、多くの場合、何らかの形のあいまいさが含まれます。そのような場合、Djangoは正しい変更を推測する必要があります。その過程で重要なデータが失われるリスクがあります。

移行を管理するには、Southを使用する必要があります

于 2012-08-02T11:27:49.210 に答える