2

Sequelize.js、Node.js、および PostgreSQLを使用します。

モデルをデータベース ( ) に強制的に同期しようとするとdrop everything, create everything、列挙型フィールド用に作成された型でエラーが発生します。

例:

{ 
    [error: cannot drop type "enum_Availabilities_status" because other objects depend on it]
    length: 304,
    name: 'error',
    severity: 'ERROR',
    code: '2BP01',
    detail: 'table "Availabilities" column status depends on type "enum_Availabilities_status"',
    hint: 'Use DROP ... CASCADE to drop the dependent objects too.',
    position: undefined,
    internalPosition: undefined,
    internalQuery: undefined,
    where: undefined,
    file: 'src\\backend\\catalog\\dependency.c',
    line: '951',
    routine: 'reportDependentObjects' 
}

これは実行後に表示されます:

sequelize.sync({ force: true })

これを回避する方法について何か提案はありますか?

4

2 に答える 2

4

ORM がどのように機能するかはわかりませんが、最初に SQL にドロップして次のコマンドを発行することで、これを強制できます。

DROP TYPE IF EXISTS enum_Availabilities_status CASCADE;

私の推測では、CASCADE が SQL 呼び出しから欠落していると思われます。次に、再同期します。

最初にデータベースのコピーでこれを試してください。列に既に型がある場合、どうなるかは 100% わかりません。

于 2013-10-25T04:18:35.307 に答える