From: Andrey Kutejko Date: Sun, 14 Sep 2014 09:44:28 +0000 (+0300) Subject: legacy friendly migrations X-Git-Tag: 0.6~133 X-Git-Url: https://git.andy128k.dev/?a=commitdiff_plain;h=f2d89103046f758f56952e0f5ea14c1c328d41ca;p=ipf.git legacy friendly migrations --- diff --git a/ipf/admin/migrations/20140103000000_create_admin_log.php b/ipf/admin/migrations/20140103000000_create_admin_log.php index 015a9f5..5c84c6e 100644 --- a/ipf/admin/migrations/20140103000000_create_admin_log.php +++ b/ipf/admin/migrations/20140103000000_create_admin_log.php @@ -4,7 +4,7 @@ class Migration_20140103000000 extends \PFF\Migrations\Migration { function migrate() { - $this->connection->exec('CREATE TABLE admin_log (' . + $this->connection->exec('CREATE TABLE IF NOT EXISTS admin_log (' . 'id BIGINT AUTO_INCREMENT,' . 'username VARCHAR(32),' . 'user_id BIGINT,' . diff --git a/ipf/auth/migrations/20140102000000_create_auth_tables.php b/ipf/auth/migrations/20140102000000_create_auth_tables.php index 5eb1394..4b53bb2 100644 --- a/ipf/auth/migrations/20140102000000_create_auth_tables.php +++ b/ipf/auth/migrations/20140102000000_create_auth_tables.php @@ -4,20 +4,53 @@ class Migration_20140102000000 extends \PFF\Migrations\Migration { function migrate() { - $this->connection->exec('CREATE TABLE auth_user (id BIGINT AUTO_INCREMENT, username VARCHAR(32) NOT NULL UNIQUE, password VARCHAR(128) NOT NULL, email VARCHAR(200) NOT NULL UNIQUE, is_staff TINYINT(1) NOT NULL DEFAULT 0, is_active TINYINT(1) NOT NULL DEFAULT 0, is_superuser TINYINT(1) NOT NULL DEFAULT 0, last_login TIMESTAMP, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB'); - $this->connection->exec('CREATE TABLE auth_role (id BIGINT AUTO_INCREMENT, name VARCHAR(255) UNIQUE, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB'); - $this->connection->exec('CREATE TABLE auth_permission (id BIGINT AUTO_INCREMENT, name VARCHAR(255) NOT NULL UNIQUE, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB'); + $this->connection->exec('CREATE TABLE IF NOT EXISTS auth_user ('. + 'id BIGINT AUTO_INCREMENT,'. + 'username VARCHAR(32) NOT NULL UNIQUE,'. + 'password VARCHAR(128) NOT NULL,'. + 'email VARCHAR(200) NOT NULL UNIQUE,'. + 'is_staff TINYINT(1) NOT NULL DEFAULT 0,'. + 'is_active TINYINT(1) NOT NULL DEFAULT 0,'. + 'is_superuser TINYINT(1) NOT NULL DEFAULT 0,'. + 'last_login TIMESTAMP,'. + 'PRIMARY KEY(id)'. + ') DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB'); - $this->connection->exec('CREATE TABLE auth_user_permission (user_id BIGINT, permission_id BIGINT, PRIMARY KEY(user_id, permission_id)) ENGINE = INNODB'); - $this->connection->exec('CREATE TABLE auth_user_role (user_id BIGINT, role_id BIGINT, PRIMARY KEY(user_id, role_id)) ENGINE = INNODB'); - $this->connection->exec('CREATE TABLE auth_role_permission (role_id BIGINT, permission_id BIGINT, PRIMARY KEY(role_id, permission_id)) ENGINE = INNODB'); + $this->connection->exec('CREATE TABLE IF NOT EXISTS auth_role ('. + 'id BIGINT AUTO_INCREMENT,'. + 'name VARCHAR(255) UNIQUE,'. + 'PRIMARY KEY(id)'. + ') DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB'); - $this->connection->exec('ALTER TABLE auth_user_permission ADD FOREIGN KEY (user_id) REFERENCES auth_user(id) ON DELETE CASCADE'); - $this->connection->exec('ALTER TABLE auth_user_permission ADD FOREIGN KEY (permission_id) REFERENCES auth_permission(id) ON DELETE CASCADE'); - $this->connection->exec('ALTER TABLE auth_user_role ADD FOREIGN KEY (user_id) REFERENCES auth_user(id) ON DELETE CASCADE'); - $this->connection->exec('ALTER TABLE auth_user_role ADD FOREIGN KEY (role_id) REFERENCES auth_role(id) ON DELETE CASCADE'); - $this->connection->exec('ALTER TABLE auth_role_permission ADD FOREIGN KEY (role_id) REFERENCES auth_role(id) ON DELETE CASCADE'); - $this->connection->exec('ALTER TABLE auth_role_permission ADD FOREIGN KEY (permission_id) REFERENCES auth_permission(id) ON DELETE CASCADE'); + $this->connection->exec('CREATE TABLE IF NOT EXISTS auth_permission ('. + 'id BIGINT AUTO_INCREMENT,'. + 'name VARCHAR(255) NOT NULL UNIQUE,'. + 'PRIMARY KEY(id)'. + ') DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = INNODB'); + + $this->connection->exec('CREATE TABLE IF NOT EXISTS auth_user_permission ('. + 'user_id BIGINT,'. + 'permission_id BIGINT,'. + 'FOREIGN KEY(user_id) REFERENCES auth_user(id) ON DELETE CASCADE,'. + 'FOREIGN KEY(permission_id) REFERENCES auth_permission(id) ON DELETE CASCADE,'. + 'PRIMARY KEY(user_id, permission_id)'. + ') ENGINE = INNODB'); + + $this->connection->exec('CREATE TABLE IF NOT EXISTS auth_user_role ('. + 'user_id BIGINT,'. + 'role_id BIGINT,'. + 'FOREIGN KEY(user_id) REFERENCES auth_user(id) ON DELETE CASCADE,'. + 'FOREIGN KEY(role_id) REFERENCES auth_role(id) ON DELETE CASCADE,'. + 'PRIMARY KEY(user_id, role_id)'. + ') ENGINE = INNODB'); + + $this->connection->exec('CREATE TABLE IF NOT EXISTS auth_role_permission ('. + 'role_id BIGINT,'. + 'permission_id BIGINT,'. + 'FOREIGN KEY(role_id) REFERENCES auth_role(id) ON DELETE CASCADE,'. + 'FOREIGN KEY(permission_id) REFERENCES auth_permission(id) ON DELETE CASCADE,'. + 'PRIMARY KEY(role_id, permission_id)'. + ') ENGINE = INNODB'); } } diff --git a/ipf/session/migrations/20140101000000_create_sessions.php b/ipf/session/migrations/20140101000000_create_sessions.php index 9d59e5c..3132625 100644 --- a/ipf/session/migrations/20140101000000_create_sessions.php +++ b/ipf/session/migrations/20140101000000_create_sessions.php @@ -4,7 +4,7 @@ class Migration_20140101000000 extends \PFF\Migrations\Migration { function migrate() { - $this->connection->exec('CREATE TABLE session (session_key VARCHAR(40), data TEXT, updated_at TIMESTAMP, PRIMARY KEY(session_key)) ENGINE = INNODB'); + $this->connection->exec('CREATE TABLE IF NOT EXISTS session (session_key VARCHAR(40), data TEXT, updated_at TIMESTAMP, PRIMARY KEY(session_key)) ENGINE = INNODB'); } }