J'ai essayé d'utiliser des migrations pour une base de données cross-dbms. En utilisant les paquets confier et confier, j'ai ajouté des migrations après eux pour ajouter une table user_statuses et une référence dans la table des utilisateurs aux ids des états des utilisateurs; mais comme je définis la clé étrangère je reçois ceci:Laravel-OCI8 ORA-02275: une telle contrainte référentielle existe déjà dans la table
[Illuminate\Database\QueryException] Error Code : 2275 Error Message : ORA-02275: such a referential constraint already exists in the table Position : 53 Statement : alter table users add constraint users_state_foreign foreign key (state) references user_statuses (id) (SQL: alter table users add constraint users_state_foreign foreign key (state) references user_statuses (id)) [yajra\Pdo\Oci8\Exceptions\SqlException] Error Code : 2275 Error Message : ORA-02275: such a referential constraint already exists in the table Position : 53 Statement : alter table users add constraint users_state_foreign foreign key (state) peferences user_statuses (id)
Voici les user_statuses et la migration d'altération. création de user_status:
Schema::create('user_statuses', function($table){
// Columns
$table->increments('id')->unsigned();
$table->string('name');
// Indexes
// Constraints
});
utilisateurs modification:
Schema::table('users',function($table){
// Columns
$table->integer('state')->unsigned();
$table->softDeletes();
// Indexed
// Constraints
$table->foreign('state')->references('id')->on('user_statuses');
});
La base de données que vous utilisez a déjà une contrainte nommée 'USERS_STATE_FOREIGN'. Essayez d'exécuter les opérations suivantes: 'SELECT * FROM ALL_CONSTRAINTS WHERE CONSTRAINT_NAME = 'USERS_STATE_FOREIGN''. Bonne chance. –
Merci @BobJarvis! Je cours les migrations pour un DB frais (je purge même le reste). J'ai essayé de changer le nom de la contrainte, le nom de la colonne. J'ai supprimé la définition de clé étrangère dont je suis au courant et il n'y aura pas de contraintes. J'ai testé les migrations avec mysql et elles me semblent correctes. Je cours des requêtes pures et ils vont bien. Je vais risquer de penser que cela pourrait faire quelque chose avec le paquet yajra/laravel-oci8 ou la migration elle-même, qui appelle cette ligne plus d'une fois! – Cunning
Personnellement, je n'utiliserai aucune variété de «framework» de base de données parce que mon observation est qu'ils causent plus de problèmes qu'ils n'en résolvent. YMMV. –