Browse Source
Merge pull request #916 from BlackDex/issue-759
Fixing issue #759 by disabling Foreign Key Checks.
pull/918/head
Daniel García
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
10 additions and
0 deletions
-
src/main.rs
|
|
@ -323,6 +323,16 @@ mod migrations { |
|
|
|
let connection = crate::db::get_connection().expect("Can't connect to DB"); |
|
|
|
|
|
|
|
use std::io::stdout; |
|
|
|
|
|
|
|
// Disable Foreign Key Checks during migration
|
|
|
|
use diesel::RunQueryDsl; |
|
|
|
#[cfg(feature = "postgres")] |
|
|
|
diesel::sql_query("SET CONSTRAINTS ALL DEFERRED").execute(&connection).expect("Failed to disable Foreign Key Checks during migrations"); |
|
|
|
#[cfg(feature = "mysql")] |
|
|
|
diesel::sql_query("SET FOREIGN_KEY_CHECKS = 0").execute(&connection).expect("Failed to disable Foreign Key Checks during migrations"); |
|
|
|
#[cfg(feature = "sqlite")] |
|
|
|
diesel::sql_query("PRAGMA defer_foreign_keys = ON").execute(&connection).expect("Failed to disable Foreign Key Checks during migrations"); |
|
|
|
|
|
|
|
embedded_migrations::run_with_output(&connection, &mut stdout()).expect("Can't run migrations"); |
|
|
|
} |
|
|
|
} |
|
|
|