2016-09-05 11 views
-1

Djangoのバックエンドで実行されているWebサイトで新しいプロジェクトが提供されました。これはPostgreSQLデータベースを使用します。 ローカルシステム上で変更が完了しました。 私のクライアントは、適切なFTP、SSH、データベースアクセスを備えたライブリモートマシンを私に与えてくれました。彼はまた、データベースダンプファイルを作成し、それを私に提供しました。 私は必要なコードとデータベースの変更を完了しました。 しかし、私はこれらのデータベースの変更をサーバーに同期させる方法を知りません。 私はDjangoとPostgreSQLのことをかなり新しくしています。このタスクを達成する方法はわかりません。 あなたの助けがこれで大いに評価されるでしょう。 ありがとうPostgreSQLデータベースのスクリプトの変更をDjangoのバックエンドと同期する方法

答えて

0

データベースに直接変更を加えるべきではありません。それはmigrationsが対象です。

+1

あなたはどういう意味ですか、複雑ですか?移行は*シンプルにするためのものです。これは簡単な方法です。そして、あなたは単にデータベーススキーマを「置き換える」ことはできません。すべてのデータはどうなりますか? –

+0

管理パネルに新しいセクションを導入して新しいモデルを作成した場合、サンプルの移行コマンドはどのようなものになりますか?どんなサンプルコマンドも共有できますか?それは私を始めさせるのに大いに役立つだろう。ありがとう – YuDroid

1

Daniel Roseman氏のように、「古いデータベーススキーマを新しいものに置き換える」ではなく、Djangoの移行ではこれを簡単に行うことができます。 人々は間違いを犯すのは簡単で、編集や削除を行ったフィールドを忘れやすいので、データベースで作成するフィールドがdjangoモデルとは少し異なる場合、問題が発生することがあります。

  • はデータベースでは、あなたが更新CURRENT_TIMESTAMPでこの日時(6)NOT NULLデフォルトのCURRENT_TIMESTAMPのようなCREATE_TIMEフィールドを設定

    例えば

  • は、Djangoのモデルでは、設定CREATE_TIME = models.DateTimeField()でdjangoモデル

プロジェクトは機能しますが、レコードを更新すると問題は発生しませんが、create_timeも更新されます。あなたのプロジェクトを展開するドッキングウィンドウを使用する場合、それはあなただけですべてのデータベースが同じデータベースschema.Youを持つことになりますことを確認する

python manage.py makemigrations 
python manage.py migrate 

を使用することができますドッカファイルで、バグを見つけてproject.Besidesを維持するのは難しいですデータベースを1つずつ置き換える必要はありません。

+0

私は上記のコマンドと全く同じコマンドを実行します。また、コンソールウィンドウに追加した新しいモジュールが表示されます。しかし、私が管理者のウェブサイトを開くと、そこに新たに追加されたモジュールは表示されません。私はここに何かを逃していますか私は実行したコマンドのログトレースを提供することができます。 – YuDroid

+0

私が実行するコマンドは次のとおりです:1. 'python manage.py makemigrations splash'。出力: ''スプラッシュ'の移行: 0001_initial.py: - モデルを作成するスプラッシュ' – YuDroid

+0

2. 'python manage.py migrate splash'。出力: '実行する操作: すべての移行を適用する:スプラッシュ 移行の実行: 適用する移行はありません。 – YuDroid

関連する問題