2

モデル/DB 同期のために南に移行したばかりの Django アプリがあります。モデルにいくつかの変更を加えた後 (つまり、新しい外部キー フィールドを追加した後)、新しい移行を作成しました。新しい移行 0002_auto__add_field_table_new_field.py 内のコードのサンプルを次に示します。

class Migration(SchemaMigration):

    def forwards(self, orm):
        # Adding field 'Table.new_field'
        db.add_column(u'Table', 'new_field',
                      self.gf('django.db.models.fields.related.ForeignKey')(to=orm['database.other_table'], null=True, blank=True),
                      keep_default=False)


    def backwards(self, orm):
        # Deleting field 'Table.new_field'
        db.delete_column(u'Table', 'new_field')

移行を適用しようとすると、クエリは常に約 30 秒後にタイムアウトになり、次のエラー メッセージが表示されます。

sqlserver_ado,dbapi.DatabaseError: (-2147352567, '例外が発生しました.', (0, u'Microsoft SQL Server Native Client 10.0', u'クエリのタイムアウトが期限切れになりました', なし, 0, -2147217871), なし)

SQL Server クエリのタイムアウトを増やすことはできますか? SSMS内で値を増やす方法以外に、これに関する特定のドキュメントを見つけることができませんでしたが、これを行っても違いはありません。これはおそらく Django settings.py で行われますか?

4

3 に答える 3

0

したがって、問題はバックエンドの python db モジュール sqlserver_ado が原因であることが判明しました。クエリのタイムアウトを決定していたのはこのモジュールです。代わりに sql_server.pyodbc ENGINE を使用するように settings.py を修正しました。これを利用して、マイグレーションが正常に適用されました。

于 2013-11-08T15:57:31.890 に答える