2

私は自分のプロジェクトにGoogle Cloud Datastore(NDBではなく)を使用しています。Googleクラウドで新しいモデル(種類)を作成する方法Datastore

python2.7とDjango。

私は新しいモデルを作成したい、タグモデルと言うことができます。

class Tag(db.Model): 
    name = ndb.StringProperty() 
    feature = ndb.StringProperty(default='') 

私はモデルに何度もプロパティを追加しましたが、まだ新しいモデルを作成していません。

私の質問は、私がDjangoのモデルスキーマをmySQLを使用している別のプロジェクト用に変更したときに、いつもmanage.py migrateを実行したことです。

Datastoreの移行コマンドも実行する必要がありますか?

モデルを定義するだけでいいですか?

ありがとうございます!

答えて

2

クラウドデータストアでは、種類を作成する必要はありませんテーブル)。コードで定義する以外に、種類を作成するための管理手順は必要ありません。

この種の最初のエンティティを書き込むと、それは暗黙的に作成されます。

あなたも、エラーなしで、まだ存在していない種類のクエリを実行することができ、あなただけ戻って何の実体を取得していないよ:

Example GQL statement on a kind that doesn't exist, shows message of "No entities matched this query"

+0

ありがとうございます。実際には、上記のTagクラスのように、models.pyで事前にモデルスキームを定義したいと思います。その場合、タグテーブル(種類)を作成するために、「python manage.py migrate」コマンドを実行する必要はありません。 – steve

+0

あなたはどうしてあなたはそう思いますか? –

+0

そうです。私はRDBと混同されました...移行コマンドはRDB用です。 – steve

-1

もちろん、別のプロジェクトの同じデータベースを使用している場合を除いて、移行する必要があります。とにかくmigrateと入力するとモデルからテーブルが作成されますが、既存のデータベースを使用している場合は何も起こりません。

+0

感謝を!私はRDBとNoSQLのコンセプトと混同していたと思う。 Migrateコマンドは、テーブルを作成したり、フィールドを更新したりするためのコマンドです。私はテーブルの作成やフィールドの更新などの操作は、雲のデータストアのようなスキームレスDBでは必要ないと考えています。 – steve

+0

はい、plsはそれを受け入れて投票を忘れることはありません –

+0

あなたはただ1つの回答を受け入れることができますが、投票することもできます –

関連する問題