SET @version= 'users_added_balance_column' ;
CREATE TABLE IF NOT EXISTS `dbversions` (`version` varchar (200) NOT NULL ,`dt_applied` datetime default NULL , UNIQUE KEY `version` (`version`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; DROP PROCEDURE IF EXISTS prc_update;
DELIMITER //
CREATE PROCEDURE prc_update(version_to_check VARCHAR (200)) BEGIN SET @isversion=( SELECT `version` FROM `dbversions` WHERE `version`=version_to_check); IF ISNULL(@isversion) THEN
— INSERT SQL HERE (BELOW)
ALTER TABLE `user_groups` ADD INDEX ( `userId` );
ALTER TABLE `user_groups`
ADD CONSTRAINT `user_groups_ibfk_1` FOREIGN KEY (`userId`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ;
— END , DO NOT INSERT SQL BELOW THIS LINE
INSERT INTO `dbversions` SET `version`=version_to_check, dt_applied=NOW(); SET @echo_string = CONCAT( 'Executed ' , version_to_check);
ELSE SET @echo_string = CONCAT( 'Skipped ' , version_to_check); END IF ; SELECT @echo_string AS '' ;
END //
DELIMITER;
CALL prc_update(@version); DROP PROCEDURE IF EXISTS prc_update; SET @version= NULL ;
* This source code was highlighted with Source Code Highlighter .
#!/usr/bin/php
<?php
require( dirname(__FILE__). '/../bootstrap_cli.php' );
$dir = dirname(__FILE__);
list($dbName, $dbUser, $dbPassword, $dbHost) = split( '/', Config::$databasesConnections['main']);
if (!empty($dbPassword)) {
$dbPassword_cmdln = '-p'.$dbPassword;
} else {
$dbPassword_cmdln = '';
}
foreach (glob($dir. '/*.sql') as $sqlFile) {
system( "mysql -u {$dbUser} {$dbPassword_cmdln} {$dbName} < {$sqlFile}" );
}
* This source code was highlighted with Source Code Highlighter .
Source: https://habr.com/ru/post/80486/