mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-11 03:53:13 +00:00
PHRAS-3820_fix-patch-3.8-to-4.1 (#4263)
* add --dry to bin/setup system:upgrade ; trace patches ; allow MailChecker to fail (when table 'usr' does not exist anymore...)
* MailChecker now works on 'usr' and 'Users' table
* typo
* typo again
* don't create appbox.Registrations if exists
* don't create tables if already exists
* Revert "don't create appbox.Registrations if exists"
This reverts commit 652131aff7
.
* drop (empty ?) tables already created before patch
* reorder drop / delete to follow fk rules
* fix typo that makes ApiMigration to run event when table exists ; Move some drop tables at the end
This commit is contained in:
@@ -5,6 +5,8 @@ namespace Alchemy\Phrasea\Core\Database;
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Setup\DoctrineMigrations\AbstractMigration;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use vierbergenlars\SemVer\version;
|
||||
|
||||
class DatabaseMaintenanceService
|
||||
@@ -63,8 +65,10 @@ class DatabaseMaintenanceService
|
||||
$this->connection = $connection;
|
||||
}
|
||||
|
||||
public function upgradeDatabase(\base $base, $applyPatches)
|
||||
public function upgradeDatabase(\base $base, $applyPatches, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$this->reconnect();
|
||||
|
||||
$recommends = [];
|
||||
@@ -102,18 +106,26 @@ class DatabaseMaintenanceService
|
||||
}
|
||||
|
||||
foreach ($allTables as $tableName => $table) {
|
||||
if($dry) {
|
||||
$output->writeln(sprintf("dry : NOT creating table \"%s\"", $tableName));
|
||||
}
|
||||
else {
|
||||
$this->createTable($table);
|
||||
}
|
||||
}
|
||||
|
||||
$current_version = $base->get_version();
|
||||
|
||||
if ($applyPatches) {
|
||||
$version = $this->app['phraseanet.version']->getNumber();
|
||||
$this->applyPatches(
|
||||
$base,
|
||||
$current_version,
|
||||
$this->app['phraseanet.version']->getNumber(),
|
||||
$version,
|
||||
false,
|
||||
$this->app);
|
||||
$input,
|
||||
$output
|
||||
);
|
||||
}
|
||||
|
||||
return $recommends;
|
||||
@@ -513,8 +525,12 @@ class DatabaseMaintenanceService
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function applyPatches(\base $base, $from, $to, $post_process)
|
||||
public function applyPatches(\base $base, $from, $to, $post_process, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$output->writeln(sprintf("into applyPatches(from=%s, to=%s, post_process=%s) on base \"%s\"", $from, $to, $post_process?'true':'false', $base->get_dbname()));
|
||||
|
||||
if (version::eq($from, $to)) {
|
||||
return true;
|
||||
}
|
||||
@@ -525,16 +541,17 @@ class DatabaseMaintenanceService
|
||||
|
||||
foreach ($iterator as $fileinfo) {
|
||||
if (!$fileinfo->isDot()) {
|
||||
// printf("---- [%d]\n", __LINE__);
|
||||
if (substr($fileinfo->getFilename(), 0, 1) == '.') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$versions = array_reverse(explode('.', $fileinfo->getFilename()));
|
||||
$classname = 'patch_' . array_pop($versions);
|
||||
|
||||
/** @var \patchAbstract $patch */
|
||||
$patch = new $classname();
|
||||
|
||||
// printf("---- [%d]\n", __LINE__);
|
||||
if (!in_array($base->get_base_type(), $patch->concern())) {
|
||||
continue;
|
||||
}
|
||||
@@ -543,14 +560,18 @@ class DatabaseMaintenanceService
|
||||
continue;
|
||||
}
|
||||
|
||||
// printf("---- [%d] %s ; from: %s ; patch: %s; to:%s\n", __LINE__, $classname, $from, $patch->get_release(), $to);
|
||||
// printf("---- [%d]\n", __LINE__);
|
||||
// if patch is older than current install
|
||||
if (version::lte($patch->get_release(), $from)) {
|
||||
continue;
|
||||
}
|
||||
// printf("---- [%d]\n", __LINE__);
|
||||
// if patch is new than current target
|
||||
if (version::gt($patch->get_release(), $to)) {
|
||||
continue;
|
||||
}
|
||||
// printf("---- [%d]\n", __LINE__);
|
||||
|
||||
$n = 0;
|
||||
do {
|
||||
@@ -570,9 +591,10 @@ class DatabaseMaintenanceService
|
||||
|
||||
// disable mail
|
||||
$this->app['swiftmailer.transport'] = null;
|
||||
|
||||
// var_dump($list_patches);
|
||||
foreach ($list_patches as $patch) {
|
||||
|
||||
$output->writeln(sprintf(" - patch \"%s\" (release %s) should be applied", get_class($patch), $patch->get_release()));
|
||||
// Gets doctrine migrations required for current patch
|
||||
foreach ($patch->getDoctrineMigrations() as $doctrineVersion) {
|
||||
/** @var \Doctrine\DBAL\Migrations\Version $version */
|
||||
@@ -591,27 +613,50 @@ class DatabaseMaintenanceService
|
||||
|
||||
// Execute migration if not marked as migrated and not already applied by an older patch
|
||||
if (!$migration->isAlreadyApplied()) {
|
||||
if($dry) {
|
||||
$output->writeln(sprintf(" dry : NOT executing(up) legacy migration \"%s\"", get_class($migration)));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf(" executing(up) legacy migration \"%s\"", get_class($migration)));
|
||||
$this->reconnect();
|
||||
|
||||
$version->execute('up');
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// Or mark it as migrated
|
||||
if($dry) {
|
||||
$output->writeln(sprintf(" dry : NOT marking migrated legacy migration \"%s\"", get_class($migration)));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf(" marking migrated legacy migration \"%s\"", get_class($migration)));
|
||||
$version->markMigrated();
|
||||
} else {
|
||||
}
|
||||
}
|
||||
else {
|
||||
if($dry) {
|
||||
$output->writeln(sprintf(" dry : NOT executing(up) doctrine migration \"%s\"", get_class($migration)));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf(" executing(up) migration doctrine \"%s\"", get_class($migration)));
|
||||
$this->reconnect();
|
||||
|
||||
$version->execute('up');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->reconnect();
|
||||
|
||||
if($dry) {
|
||||
$output->writeln(sprintf(" dry : NOT applying patch \"%s\"", get_class($patch)));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf(" applying patch \"%s\"", get_class($patch)));
|
||||
if (false === $patch->apply($base, $this->app)) {
|
||||
$success = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
@@ -12,9 +12,11 @@
|
||||
namespace Alchemy\Phrasea\Setup;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Setup\Version\Migration\MigrationInterface;
|
||||
use Alchemy\Phrasea\Setup\Version\Probe\Probe31;
|
||||
use Alchemy\Phrasea\Setup\Version\Probe\Probe35;
|
||||
use Alchemy\Phrasea\Setup\Version\Probe\Probe38;
|
||||
use Alchemy\Phrasea\Setup\Version\Probe\ProbeInterface;
|
||||
use Alchemy\Phrasea\Setup\Version\Probe\ProbeInterface as VersionProbeInterface;
|
||||
use Alchemy\Phrasea\Setup\Probe\BinariesProbe;
|
||||
use Alchemy\Phrasea\Setup\Probe\CacheServerProbe;
|
||||
@@ -26,12 +28,16 @@ use Alchemy\Phrasea\Setup\Probe\SearchEngineProbe;
|
||||
use Alchemy\Phrasea\Setup\Probe\SubdefsPathsProbe;
|
||||
use Alchemy\Phrasea\Setup\Probe\SystemProbe;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use vierbergenlars\SemVer\version;
|
||||
|
||||
class ConfigurationTester
|
||||
{
|
||||
private $app;
|
||||
private $requirements;
|
||||
|
||||
/** @var ProbeInterface[] */
|
||||
private $versionProbes;
|
||||
|
||||
public function __construct(Application $app)
|
||||
@@ -147,7 +153,10 @@ class ConfigurationTester
|
||||
}
|
||||
}
|
||||
|
||||
public function getMigrations()
|
||||
/**
|
||||
* @return MigrationInterface[]
|
||||
*/
|
||||
public function getMigrations(InputInterface $input = null, OutputInterface $output = null)
|
||||
{
|
||||
$migrations = [];
|
||||
|
||||
@@ -156,6 +165,9 @@ class ConfigurationTester
|
||||
}
|
||||
|
||||
foreach ($this->versionProbes as $probe) {
|
||||
if($output) {
|
||||
$output->writeln(sprintf("configurationTester : probing \"%s\"", get_class($probe)));
|
||||
}
|
||||
if ($probe->isMigrable()) {
|
||||
$migrations[] = $probe->getMigration();
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@ class AggregateTokenMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE AggregateTokens (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, value VARCHAR(64) DEFAULT NULL, INDEX IDX_4232BC51A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS AggregateTokens (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, value VARCHAR(64) DEFAULT NULL, INDEX IDX_4232BC51A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE AggregateTokens ADD CONSTRAINT FK_4232BC51A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -17,17 +17,24 @@ class ApiMigration extends AbstractMigration
|
||||
{
|
||||
public function isAlreadyApplied()
|
||||
{
|
||||
return $this->tableExists('ApiApplication');
|
||||
return $this->tableExists('ApiApplications');
|
||||
}
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE ApiLogs (id INT AUTO_INCREMENT NOT NULL, account_id INT NOT NULL, route VARCHAR(128) DEFAULT NULL, method VARCHAR(16) DEFAULT NULL, created DATETIME NOT NULL, status_code INT DEFAULT NULL, format VARCHAR(64) DEFAULT NULL, resource VARCHAR(64) DEFAULT NULL, general VARCHAR(64) DEFAULT NULL, aspect VARCHAR(64) DEFAULT NULL, action VARCHAR(64) DEFAULT NULL, error_code INT DEFAULT NULL, error_message LONGTEXT DEFAULT NULL, INDEX IDX_91E90F309B6B5FBA (account_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ApiApplications (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, type VARCHAR(128) NOT NULL, name VARCHAR(128) NOT NULL, description LONGTEXT NOT NULL, website VARCHAR(128) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, client_id VARCHAR(32) NOT NULL, client_secret VARCHAR(32) NOT NULL, nonce VARCHAR(64) NOT NULL, redirect_uri VARCHAR(128) NOT NULL, activated TINYINT(1) NOT NULL, grant_password TINYINT(1) NOT NULL, webhook_url VARCHAR(128) DEFAULT NULL, INDEX IDX_53F7BBE661220EA6 (creator_id), UNIQUE INDEX client_id (client_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ApiOauthCodes (code VARCHAR(128) NOT NULL, account_id INT NOT NULL, redirect_uri VARCHAR(128) NOT NULL, expires DATETIME DEFAULT NULL, scope VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_BE6B11809B6B5FBA (account_id), PRIMARY KEY(code)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ApiOauthRefreshTokens (refresh_token VARCHAR(128) NOT NULL, account_id INT NOT NULL, expires DATETIME NOT NULL, scope VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_7DA42A5A9B6B5FBA (account_id), PRIMARY KEY(refresh_token)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ApiOauthTokens (oauth_token VARCHAR(128) NOT NULL, account_id INT NOT NULL, session_id INT DEFAULT NULL, expires DATETIME DEFAULT NULL, last_used DATETIME NOT NULL, scope VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_4FD469539B6B5FBA (account_id), INDEX session_id (session_id), PRIMARY KEY(oauth_token)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ApiAccounts (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, application_id INT NOT NULL, revoked TINYINT(1) NOT NULL, api_version VARCHAR(16) NOT NULL, created DATETIME NOT NULL, INDEX IDX_2C54E637A76ED395 (user_id), INDEX IDX_2C54E6373E030ACD (application_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("DROP TABLE IF EXISTS ApiLogs");
|
||||
$this->addSql("DROP TABLE IF EXISTS ApiOauthCodes");
|
||||
$this->addSql("DROP TABLE IF EXISTS ApiOauthRefreshTokens");
|
||||
$this->addSql("DROP TABLE IF EXISTS ApiOauthTokens");
|
||||
$this->addSql("DROP TABLE IF EXISTS ApiAccounts");
|
||||
$this->addSql("DROP TABLE IF EXISTS ApiApplications");
|
||||
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ApiLogs (id INT AUTO_INCREMENT NOT NULL, account_id INT NOT NULL, route VARCHAR(128) DEFAULT NULL, method VARCHAR(16) DEFAULT NULL, created DATETIME NOT NULL, status_code INT DEFAULT NULL, format VARCHAR(64) DEFAULT NULL, resource VARCHAR(64) DEFAULT NULL, general VARCHAR(64) DEFAULT NULL, aspect VARCHAR(64) DEFAULT NULL, action VARCHAR(64) DEFAULT NULL, error_code INT DEFAULT NULL, error_message LONGTEXT DEFAULT NULL, INDEX IDX_91E90F309B6B5FBA (account_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ApiApplications (id INT AUTO_INCREMENT NOT NULL, creator_id INT DEFAULT NULL, type VARCHAR(128) NOT NULL, name VARCHAR(128) NOT NULL, description LONGTEXT NOT NULL, website VARCHAR(128) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, client_id VARCHAR(32) NOT NULL, client_secret VARCHAR(32) NOT NULL, nonce VARCHAR(64) NOT NULL, redirect_uri VARCHAR(128) NOT NULL, activated TINYINT(1) NOT NULL, grant_password TINYINT(1) NOT NULL, webhook_url VARCHAR(128) DEFAULT NULL, INDEX IDX_53F7BBE661220EA6 (creator_id), UNIQUE INDEX client_id (client_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ApiOauthCodes (code VARCHAR(128) NOT NULL, account_id INT NOT NULL, redirect_uri VARCHAR(128) NOT NULL, expires DATETIME DEFAULT NULL, scope VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_BE6B11809B6B5FBA (account_id), PRIMARY KEY(code)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ApiOauthRefreshTokens (refresh_token VARCHAR(128) NOT NULL, account_id INT NOT NULL, expires DATETIME NOT NULL, scope VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_7DA42A5A9B6B5FBA (account_id), PRIMARY KEY(refresh_token)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ApiOauthTokens (oauth_token VARCHAR(128) NOT NULL, account_id INT NOT NULL, session_id INT DEFAULT NULL, expires DATETIME DEFAULT NULL, last_used DATETIME NOT NULL, scope VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_4FD469539B6B5FBA (account_id), INDEX session_id (session_id), PRIMARY KEY(oauth_token)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ApiAccounts (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, application_id INT NOT NULL, revoked TINYINT(1) NOT NULL, api_version VARCHAR(16) NOT NULL, created DATETIME NOT NULL, INDEX IDX_2C54E637A76ED395 (user_id), INDEX IDX_2C54E6373E030ACD (application_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE ApiLogs ADD CONSTRAINT FK_91E90F309B6B5FBA FOREIGN KEY (account_id) REFERENCES ApiAccounts (id)");
|
||||
$this->addSql("ALTER TABLE ApiApplications ADD CONSTRAINT FK_53F7BBE661220EA6 FOREIGN KEY (creator_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE ApiOauthCodes ADD CONSTRAINT FK_BE6B11809B6B5FBA FOREIGN KEY (account_id) REFERENCES ApiAccounts (id)");
|
||||
|
@@ -22,7 +22,7 @@ class AuthFailureMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE AuthFailures (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(128) NOT NULL, ip VARCHAR(128) DEFAULT NULL, locked TINYINT(1) NOT NULL, created DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS AuthFailures (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(128) NOT NULL, ip VARCHAR(128) DEFAULT NULL, locked TINYINT(1) NOT NULL, created DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
}
|
||||
|
||||
public function doDownSql(Schema $schema)
|
||||
|
@@ -22,11 +22,11 @@ class FeedMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE Feeds (id INT AUTO_INCREMENT NOT NULL, public TINYINT(1) NOT NULL, icon_url TINYINT(1) NOT NULL, base_id INT DEFAULT NULL, title VARCHAR(128) NOT NULL, subtitle VARCHAR(1024) DEFAULT NULL, created_on DATETIME NOT NULL, updated_on DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE FeedPublishers (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, feed_id INT DEFAULT NULL, owner TINYINT(1) NOT NULL, created_on DATETIME NOT NULL, INDEX IDX_31AFAB2A76ED395 (user_id), INDEX IDX_31AFAB251A5BC03 (feed_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE FeedEntries (id INT AUTO_INCREMENT NOT NULL, publisher_id INT DEFAULT NULL, feed_id INT DEFAULT NULL, title VARCHAR(128) NOT NULL, subtitle VARCHAR(128) NOT NULL, author_name VARCHAR(128) NOT NULL, author_email VARCHAR(128) NOT NULL, created_on DATETIME NOT NULL, updated_on DATETIME NOT NULL, INDEX IDX_5FC892F940C86FCE (publisher_id), INDEX IDX_5FC892F951A5BC03 (feed_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE FeedItems (id INT AUTO_INCREMENT NOT NULL, entry_id INT DEFAULT NULL, record_id INT NOT NULL, sbas_id INT NOT NULL, ord INT NOT NULL, created_on DATETIME NOT NULL, updated_on DATETIME NOT NULL, INDEX IDX_7F9CDFA6BA364942 (entry_id), UNIQUE INDEX lookup_unique_idx (entry_id, sbas_id, record_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE FeedTokens (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, feed_id INT DEFAULT NULL, value VARCHAR(12) DEFAULT NULL, INDEX IDX_9D1CA848A76ED395 (user_id), INDEX IDX_9D1CA84851A5BC03 (feed_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Feeds (id INT AUTO_INCREMENT NOT NULL, public TINYINT(1) NOT NULL, icon_url TINYINT(1) NOT NULL, base_id INT DEFAULT NULL, title VARCHAR(128) NOT NULL, subtitle VARCHAR(1024) DEFAULT NULL, created_on DATETIME NOT NULL, updated_on DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FeedPublishers (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, feed_id INT DEFAULT NULL, owner TINYINT(1) NOT NULL, created_on DATETIME NOT NULL, INDEX IDX_31AFAB2A76ED395 (user_id), INDEX IDX_31AFAB251A5BC03 (feed_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FeedEntries (id INT AUTO_INCREMENT NOT NULL, publisher_id INT DEFAULT NULL, feed_id INT DEFAULT NULL, title VARCHAR(128) NOT NULL, subtitle VARCHAR(128) NOT NULL, author_name VARCHAR(128) NOT NULL, author_email VARCHAR(128) NOT NULL, created_on DATETIME NOT NULL, updated_on DATETIME NOT NULL, INDEX IDX_5FC892F940C86FCE (publisher_id), INDEX IDX_5FC892F951A5BC03 (feed_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FeedItems (id INT AUTO_INCREMENT NOT NULL, entry_id INT DEFAULT NULL, record_id INT NOT NULL, sbas_id INT NOT NULL, ord INT NOT NULL, created_on DATETIME NOT NULL, updated_on DATETIME NOT NULL, INDEX IDX_7F9CDFA6BA364942 (entry_id), UNIQUE INDEX lookup_unique_idx (entry_id, sbas_id, record_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FeedTokens (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, feed_id INT DEFAULT NULL, value VARCHAR(12) DEFAULT NULL, INDEX IDX_9D1CA848A76ED395 (user_id), INDEX IDX_9D1CA84851A5BC03 (feed_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE FeedPublishers ADD CONSTRAINT FK_31AFAB2A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE FeedPublishers ADD CONSTRAINT FK_31AFAB251A5BC03 FOREIGN KEY (feed_id) REFERENCES Feeds (id)");
|
||||
$this->addSql("ALTER TABLE FeedEntries ADD CONSTRAINT FK_5FC892F940C86FCE FOREIGN KEY (publisher_id) REFERENCES FeedPublishers (id)");
|
||||
|
@@ -22,7 +22,7 @@ class FtpCredentialMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE FtpCredential (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, active TINYINT(1) NOT NULL, address VARCHAR(128) NOT NULL, login VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, reception_folder VARCHAR(128) NOT NULL, repository_prefix_name VARCHAR(128) NOT NULL, passive TINYINT(1) NOT NULL, tls TINYINT(1) NOT NULL, max_retry INT NOT NULL, updated DATETIME NOT NULL, UNIQUE INDEX UNIQ_62DA9661A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FtpCredential (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, active TINYINT(1) NOT NULL, address VARCHAR(128) NOT NULL, login VARCHAR(128) NOT NULL, password VARCHAR(128) NOT NULL, reception_folder VARCHAR(128) NOT NULL, repository_prefix_name VARCHAR(128) NOT NULL, passive TINYINT(1) NOT NULL, tls TINYINT(1) NOT NULL, max_retry INT NOT NULL, updated DATETIME NOT NULL, UNIQUE INDEX UNIQ_62DA9661A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE FtpCredential ADD CONSTRAINT FK_62DA9661A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
$this->addSql('ALTER TABLE FtpCredential CHANGE active active TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE address address VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE login login VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE password password VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE reception_folder reception_folder VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE repository_prefix_name repository_prefix_name VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE passive passive TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE tls tls TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE max_retry max_retry INT DEFAULT 5 NOT NULL');
|
||||
}
|
||||
|
@@ -22,8 +22,8 @@ class FtpExportMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE FtpExportElements (id INT AUTO_INCREMENT NOT NULL, export_id INT DEFAULT NULL, record_id INT NOT NULL, base_id INT NOT NULL, subdef VARCHAR(255) NOT NULL, filename VARCHAR(255) NOT NULL, folder VARCHAR(255) DEFAULT NULL, error TINYINT(1) NOT NULL, done TINYINT(1) NOT NULL, businessfields TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_7BF0AE1264CDAF82 (export_id), INDEX done (done), INDEX error (error), UNIQUE INDEX unique_ftp_export (export_id, base_id, record_id, subdef), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE FtpExports (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, crash INT NOT NULL, nbretry INT NOT NULL, mail LONGTEXT DEFAULT NULL, addr LONGTEXT NOT NULL, use_ssl TINYINT(1) NOT NULL, login LONGTEXT DEFAULT NULL, pwd LONGTEXT DEFAULT NULL, passif TINYINT(1) NOT NULL, destfolder LONGTEXT NOT NULL, sendermail LONGTEXT DEFAULT NULL, text_mail_sender LONGTEXT DEFAULT NULL, text_mail_receiver LONGTEXT DEFAULT NULL, foldertocreate LONGTEXT DEFAULT NULL, logfile TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_CFCEEE7AA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FtpExportElements (id INT AUTO_INCREMENT NOT NULL, export_id INT DEFAULT NULL, record_id INT NOT NULL, base_id INT NOT NULL, subdef VARCHAR(255) NOT NULL, filename VARCHAR(255) NOT NULL, folder VARCHAR(255) DEFAULT NULL, error TINYINT(1) NOT NULL, done TINYINT(1) NOT NULL, businessfields TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_7BF0AE1264CDAF82 (export_id), INDEX done (done), INDEX error (error), UNIQUE INDEX unique_ftp_export (export_id, base_id, record_id, subdef), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS FtpExports (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, crash INT NOT NULL, nbretry INT NOT NULL, mail LONGTEXT DEFAULT NULL, addr LONGTEXT NOT NULL, use_ssl TINYINT(1) NOT NULL, login LONGTEXT DEFAULT NULL, pwd LONGTEXT DEFAULT NULL, passif TINYINT(1) NOT NULL, destfolder LONGTEXT NOT NULL, sendermail LONGTEXT DEFAULT NULL, text_mail_sender LONGTEXT DEFAULT NULL, text_mail_receiver LONGTEXT DEFAULT NULL, foldertocreate LONGTEXT DEFAULT NULL, logfile TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_CFCEEE7AA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE FtpExportElements ADD CONSTRAINT FK_7BF0AE1264CDAF82 FOREIGN KEY (export_id) REFERENCES FtpExports (id)");
|
||||
$this->addSql("ALTER TABLE FtpExports ADD CONSTRAINT FK_CFCEEE7AA76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
@@ -22,10 +22,10 @@ class LazaretMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE LazaretChecks (id INT AUTO_INCREMENT NOT NULL, lazaret_file_id INT DEFAULT NULL, checkClassname VARCHAR(512) NOT NULL, INDEX IDX_CE873ED44CF84ADD (lazaret_file_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE LazaretSessions (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_40A81317A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE LazaretAttributes (id INT AUTO_INCREMENT NOT NULL, lazaret_file_id INT DEFAULT NULL, name VARCHAR(64) NOT NULL, value VARCHAR(2048) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_5FF72F9B4CF84ADD (lazaret_file_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE LazaretFiles (id INT AUTO_INCREMENT NOT NULL, lazaret_session_id INT DEFAULT NULL, filename VARCHAR(512) NOT NULL, thumbFilename VARCHAR(512) NOT NULL, originalName VARCHAR(256) NOT NULL, base_id INT NOT NULL, uuid VARCHAR(36) NOT NULL, sha256 VARCHAR(64) NOT NULL, forced TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_D30BD768EE187C01 (lazaret_session_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS LazaretChecks (id INT AUTO_INCREMENT NOT NULL, lazaret_file_id INT DEFAULT NULL, checkClassname VARCHAR(512) NOT NULL, INDEX IDX_CE873ED44CF84ADD (lazaret_file_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS LazaretSessions (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_40A81317A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS LazaretAttributes (id INT AUTO_INCREMENT NOT NULL, lazaret_file_id INT DEFAULT NULL, name VARCHAR(64) NOT NULL, value VARCHAR(2048) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_5FF72F9B4CF84ADD (lazaret_file_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS LazaretFiles (id INT AUTO_INCREMENT NOT NULL, lazaret_session_id INT DEFAULT NULL, filename VARCHAR(512) NOT NULL, thumbFilename VARCHAR(512) NOT NULL, originalName VARCHAR(256) NOT NULL, base_id INT NOT NULL, uuid VARCHAR(36) NOT NULL, sha256 VARCHAR(64) NOT NULL, forced TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_D30BD768EE187C01 (lazaret_session_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE LazaretChecks ADD CONSTRAINT FK_CE873ED44CF84ADD FOREIGN KEY (lazaret_file_id) REFERENCES LazaretFiles (id)");
|
||||
$this->addSql("ALTER TABLE LazaretSessions ADD CONSTRAINT FK_40A81317A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE LazaretAttributes ADD CONSTRAINT FK_5FF72F9B4CF84ADD FOREIGN KEY (lazaret_file_id) REFERENCES LazaretFiles (id)");
|
||||
|
@@ -23,10 +23,10 @@ class OrderMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE Orders (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, basket_id INT DEFAULT NULL, order_usage VARCHAR(2048) NOT NULL, todo INT DEFAULT NULL, deadline DATETIME NOT NULL, created_on DATETIME NOT NULL, INDEX IDX_E283F8D8A76ED395 (user_id), UNIQUE INDEX UNIQ_E283F8D81BE1FB52 (basket_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Orders (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, basket_id INT DEFAULT NULL, order_usage VARCHAR(2048) NOT NULL, todo INT DEFAULT NULL, deadline DATETIME NOT NULL, created_on DATETIME NOT NULL, INDEX IDX_E283F8D8A76ED395 (user_id), UNIQUE INDEX UNIQ_E283F8D81BE1FB52 (basket_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql(sprintf("ALTER TABLE Orders ADD COLUMN notification_method VARCHAR(32) NOT NULL DEFAULT '%s'", Order::NOTIFY_MAIL));
|
||||
$this->addSql("ALTER TABLE Orders ALTER COLUMN notification_method DROP DEFAULT");
|
||||
$this->addSql("CREATE TABLE OrderElements (id INT AUTO_INCREMENT NOT NULL, order_master INT DEFAULT NULL, order_id INT DEFAULT NULL, base_id INT NOT NULL, record_id INT NOT NULL, deny TINYINT(1) DEFAULT NULL, INDEX IDX_8C7066C8EE86B303 (order_master), INDEX IDX_8C7066C88D9F6D38 (order_id), UNIQUE INDEX unique_ordercle (base_id, record_id, order_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS OrderElements (id INT AUTO_INCREMENT NOT NULL, order_master INT DEFAULT NULL, order_id INT DEFAULT NULL, base_id INT NOT NULL, record_id INT NOT NULL, deny TINYINT(1) DEFAULT NULL, INDEX IDX_8C7066C8EE86B303 (order_master), INDEX IDX_8C7066C88D9F6D38 (order_id), UNIQUE INDEX unique_ordercle (base_id, record_id, order_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE Orders ADD CONSTRAINT FK_E283F8D8A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE Orders ADD CONSTRAINT FK_E283F8D81BE1FB52 FOREIGN KEY (basket_id) REFERENCES Baskets (id)");
|
||||
$this->addSql("ALTER TABLE OrderElements ADD CONSTRAINT FK_8C7066C8EE86B303 FOREIGN KEY (order_master) REFERENCES Users (id)");
|
||||
|
@@ -22,7 +22,7 @@ class PresetMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE Presets (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, sbas_id INT NOT NULL, title VARCHAR(128) NOT NULL, data LONGTEXT NOT NULL, created DATETIME NOT NULL, INDEX IDX_1C48F8F3A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Presets (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, sbas_id INT NOT NULL, title VARCHAR(128) NOT NULL, data LONGTEXT NOT NULL, created DATETIME NOT NULL, INDEX IDX_1C48F8F3A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE Presets ADD CONSTRAINT FK_1C48F8F3A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -17,6 +17,7 @@ class RegistrationMigration extends AbstractMigration
|
||||
{
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("DROP TABLE IF EXISTS Registrations");
|
||||
$this->addSql("CREATE TABLE Registrations (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, base_id INT NOT NULL, pending TINYINT(1) NOT NULL, rejected TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_7A997C5FA76ED395 (user_id), UNIQUE INDEX unique_registration (user_id, base_id, pending), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
}
|
||||
|
||||
|
@@ -23,8 +23,8 @@ class SessionMigration extends AbstractMigration
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
if (! $schema->hasTable('Sessions')) {
|
||||
$this->addSql("CREATE TABLE Sessions (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, user_agent VARCHAR(512) NOT NULL, ip_address VARCHAR(40) DEFAULT NULL, platform VARCHAR(128) DEFAULT NULL, browser_name VARCHAR(128) DEFAULT NULL, browser_version VARCHAR(32) DEFAULT NULL, screen_width INT DEFAULT NULL, screen_height INT DEFAULT NULL, token VARCHAR(128) DEFAULT NULL, nonce VARCHAR(16) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, UNIQUE INDEX UNIQ_6316FF455F37A13B (token), INDEX IDX_6316FF45A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE SessionModules (id INT AUTO_INCREMENT NOT NULL, session_id INT DEFAULT NULL, module_id INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_BA36EF49613FECDF (session_id), UNIQUE INDEX unique_module (session_id, module_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Sessions (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, user_agent VARCHAR(512) NOT NULL, ip_address VARCHAR(40) DEFAULT NULL, platform VARCHAR(128) DEFAULT NULL, browser_name VARCHAR(128) DEFAULT NULL, browser_version VARCHAR(32) DEFAULT NULL, screen_width INT DEFAULT NULL, screen_height INT DEFAULT NULL, token VARCHAR(128) DEFAULT NULL, nonce VARCHAR(16) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, UNIQUE INDEX UNIQ_6316FF455F37A13B (token), INDEX IDX_6316FF45A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS SessionModules (id INT AUTO_INCREMENT NOT NULL, session_id INT DEFAULT NULL, module_id INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_BA36EF49613FECDF (session_id), UNIQUE INDEX unique_module (session_id, module_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE SessionModules ADD CONSTRAINT FK_BA36EF49613FECDF FOREIGN KEY (session_id) REFERENCES Sessions (id)");
|
||||
$this->addSql("ALTER TABLE Sessions ADD CONSTRAINT FK_6316FF45A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
@@ -22,7 +22,7 @@ class TaskMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE Tasks (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, jobId VARCHAR(255) NOT NULL, settings LONGTEXT NOT NULL, completed TINYINT(1) NOT NULL, status VARCHAR(255) NOT NULL, crashed INT NOT NULL, single_run TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, last_execution DATETIME DEFAULT NULL, period INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Tasks (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, jobId VARCHAR(255) NOT NULL, settings LONGTEXT NOT NULL, completed TINYINT(1) NOT NULL, status VARCHAR(255) NOT NULL, crashed INT NOT NULL, single_run TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, last_execution DATETIME DEFAULT NULL, period INT NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
}
|
||||
|
||||
public function doDownSql(Schema $schema)
|
||||
|
@@ -20,7 +20,8 @@ class TokenMigration extends AbstractMigration
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql", "Migration can only be executed safely on 'mysql'.");
|
||||
|
||||
$this->addSql("CREATE TABLE Tokens (value VARCHAR(16) NOT NULL, user_id INT DEFAULT NULL, type VARCHAR(32) NOT NULL, data LONGTEXT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, expiration DATETIME DEFAULT NULL, INDEX IDX_ADF614B8A76ED395 (user_id), PRIMARY KEY(value)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("DROP TABLE IF EXISTS Tokens");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Tokens (value VARCHAR(16) NOT NULL, user_id INT DEFAULT NULL, type VARCHAR(32) NOT NULL, data LONGTEXT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, expiration DATETIME DEFAULT NULL, INDEX IDX_ADF614B8A76ED395 (user_id), PRIMARY KEY(value)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE Tokens ADD CONSTRAINT FK_ADF614B8A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -25,7 +25,7 @@ class UserAuthProviderMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE UsrAuthProviders (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, provider VARCHAR(32) NOT NULL, distant_id VARCHAR(192) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_947F003FA76ED395 (user_id), UNIQUE INDEX unique_provider_per_user (user_id, provider), UNIQUE INDEX provider_ids (provider, distant_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UsrAuthProviders (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, provider VARCHAR(32) NOT NULL, distant_id VARCHAR(192) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_947F003FA76ED395 (user_id), UNIQUE INDEX unique_provider_per_user (user_id, provider), UNIQUE INDEX provider_ids (provider, distant_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE UsrAuthProviders ADD CONSTRAINT FK_947F003FA76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -25,9 +25,9 @@ class UserListMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE UsrListOwners (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, list_id INT DEFAULT NULL, role VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_54E9FE23A76ED395 (user_id), INDEX IDX_54E9FE233DAE168B (list_id), UNIQUE INDEX unique_owner (user_id, id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE UsrLists (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE UsrListsContent (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, list_id INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_661B8B9A76ED395 (user_id), INDEX IDX_661B8B93DAE168B (list_id), UNIQUE INDEX unique_usr_per_list (user_id, list_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UsrListOwners (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, list_id INT DEFAULT NULL, role VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_54E9FE23A76ED395 (user_id), INDEX IDX_54E9FE233DAE168B (list_id), UNIQUE INDEX unique_owner (user_id, id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UsrLists (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UsrListsContent (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, list_id INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_661B8B9A76ED395 (user_id), INDEX IDX_661B8B93DAE168B (list_id), UNIQUE INDEX unique_usr_per_list (user_id, list_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE UsrListOwners ADD CONSTRAINT FK_54E9FE23A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE UsrListOwners ADD CONSTRAINT FK_54E9FE233DAE168B FOREIGN KEY (list_id) REFERENCES UsrLists (id)");
|
||||
$this->addSql("ALTER TABLE UsrListsContent ADD CONSTRAINT FK_661B8B9A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
|
@@ -22,7 +22,7 @@ class UserMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE Users (id INT AUTO_INCREMENT NOT NULL, last_model INT DEFAULT NULL, model_of INT DEFAULT NULL, login VARCHAR(128) NOT NULL, email VARCHAR(128) DEFAULT NULL, password VARCHAR(128) DEFAULT NULL, nonce VARCHAR(64) DEFAULT NULL, salted_password TINYINT(1) NOT NULL, first_name VARCHAR(64) NOT NULL, last_name VARCHAR(64) NOT NULL, gender SMALLINT DEFAULT NULL, address LONGTEXT NOT NULL, city VARCHAR(64) NOT NULL, country VARCHAR(64) DEFAULT NULL, zip_code VARCHAR(32) NOT NULL, geoname_id INT DEFAULT NULL, locale VARCHAR(8) DEFAULT NULL, timezone VARCHAR(128) NOT NULL, job VARCHAR(128) NOT NULL, activity VARCHAR(256) NOT NULL, company VARCHAR(64) NOT NULL, phone VARCHAR(32) NOT NULL, fax VARCHAR(32) NOT NULL, admin TINYINT(1) NOT NULL, guest TINYINT(1) NOT NULL, mail_notifications TINYINT(1) NOT NULL, request_notifications TINYINT(1) NOT NULL, ldap_created TINYINT(1) NOT NULL, push_list LONGTEXT NOT NULL, can_change_profil TINYINT(1) NOT NULL, can_change_ftp_profil TINYINT(1) NOT NULL, last_connection DATETIME DEFAULT NULL, mail_locked TINYINT(1) NOT NULL, deleted TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_D5428AEDB5DE44C2 (last_model), INDEX IDX_D5428AEDC121714D (model_of), INDEX salted_password (salted_password), INDEX admin (admin), INDEX guest (guest), UNIQUE INDEX email_unique (email), UNIQUE INDEX login_unique (login), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Users (id INT AUTO_INCREMENT NOT NULL, last_model INT DEFAULT NULL, model_of INT DEFAULT NULL, login VARCHAR(128) NOT NULL, email VARCHAR(128) DEFAULT NULL, password VARCHAR(128) DEFAULT NULL, nonce VARCHAR(64) DEFAULT NULL, salted_password TINYINT(1) NOT NULL, first_name VARCHAR(64) NOT NULL, last_name VARCHAR(64) NOT NULL, gender SMALLINT DEFAULT NULL, address LONGTEXT NOT NULL, city VARCHAR(64) NOT NULL, country VARCHAR(64) DEFAULT NULL, zip_code VARCHAR(32) NOT NULL, geoname_id INT DEFAULT NULL, locale VARCHAR(8) DEFAULT NULL, timezone VARCHAR(128) NOT NULL, job VARCHAR(128) NOT NULL, activity VARCHAR(256) NOT NULL, company VARCHAR(64) NOT NULL, phone VARCHAR(32) NOT NULL, fax VARCHAR(32) NOT NULL, admin TINYINT(1) NOT NULL, guest TINYINT(1) NOT NULL, mail_notifications TINYINT(1) NOT NULL, request_notifications TINYINT(1) NOT NULL, ldap_created TINYINT(1) NOT NULL, push_list LONGTEXT NOT NULL, can_change_profil TINYINT(1) NOT NULL, can_change_ftp_profil TINYINT(1) NOT NULL, last_connection DATETIME DEFAULT NULL, mail_locked TINYINT(1) NOT NULL, deleted TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_D5428AEDB5DE44C2 (last_model), INDEX IDX_D5428AEDC121714D (model_of), INDEX salted_password (salted_password), INDEX admin (admin), INDEX guest (guest), UNIQUE INDEX email_unique (email), UNIQUE INDEX login_unique (login), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE Users ADD CONSTRAINT FK_D5428AEDB5DE44C2 FOREIGN KEY (last_model) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE Users ADD CONSTRAINT FK_D5428AEDC121714D FOREIGN KEY (model_of) REFERENCES Users (id)");
|
||||
$this->addSql('ALTER TABLE Users CHANGE login login VARCHAR(128) COLLATE utf8_bin NOT NULL, CHANGE password password VARCHAR(128) COLLATE utf8_bin DEFAULT NULL, CHANGE nonce nonce VARCHAR(64) COLLATE utf8_bin DEFAULT NULL, CHANGE salted_password salted_password TINYINT(1) DEFAULT \'1\' NOT NULL, CHANGE first_name first_name VARCHAR(64) DEFAULT \'\' NOT NULL, CHANGE last_name last_name VARCHAR(64) DEFAULT \'\' NOT NULL, CHANGE address address VARCHAR(255) DEFAULT \'\' NOT NULL, CHANGE city city VARCHAR(64) DEFAULT \'\' NOT NULL, CHANGE country country VARCHAR(64) DEFAULT \'\', CHANGE zip_code zip_code VARCHAR(32) DEFAULT \'\' NOT NULL, CHANGE timezone timezone VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE job job VARCHAR(128) DEFAULT \'\' NOT NULL, CHANGE activity activity VARCHAR(256) DEFAULT \'\' NOT NULL, CHANGE company company VARCHAR(64) DEFAULT \'\' NOT NULL, CHANGE phone phone VARCHAR(32) DEFAULT \'\' NOT NULL, CHANGE fax fax VARCHAR(32) DEFAULT \'\' NOT NULL, CHANGE admin admin TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE guest guest TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE mail_notifications mail_notifications TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE request_notifications request_notifications TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE ldap_created ldap_created TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE push_list push_list VARCHAR(255) DEFAULT \'\' NOT NULL, CHANGE can_change_profil can_change_profil TINYINT(1) DEFAULT \'1\' NOT NULL, CHANGE can_change_ftp_profil can_change_ftp_profil TINYINT(1) DEFAULT \'1\' NOT NULL, CHANGE mail_locked mail_locked TINYINT(1) DEFAULT \'0\' NOT NULL, CHANGE deleted deleted TINYINT(1) DEFAULT \'0\' NOT NULL');
|
||||
|
@@ -22,7 +22,7 @@ class UserNotificationSettingMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE UserNotificationSettings (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(64) NOT NULL, value VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_CFF041AAA76ED395 (user_id), UNIQUE INDEX unique_index (user_id, name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UserNotificationSettings (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(64) NOT NULL, value VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_CFF041AAA76ED395 (user_id), UNIQUE INDEX unique_index (user_id, name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE UserNotificationSettings ADD CONSTRAINT FK_CFF041AAA76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -22,7 +22,7 @@ class UserQueryMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE UserQueries (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, query VARCHAR(256) NOT NULL, created DATETIME NOT NULL, INDEX IDX_5FB80D87A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UserQueries (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, query VARCHAR(256) NOT NULL, created DATETIME NOT NULL, INDEX IDX_5FB80D87A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE UserQueries ADD CONSTRAINT FK_5FB80D87A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -22,7 +22,7 @@ class UserSettingMigration extends AbstractMigration
|
||||
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
$this->addSql("CREATE TABLE UserSettings (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(64) NOT NULL, value VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_2847E61CA76ED395 (user_id), UNIQUE INDEX unique_setting (user_id, name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS UserSettings (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(64) NOT NULL, value VARCHAR(128) DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_2847E61CA76ED395 (user_id), UNIQUE INDEX unique_setting (user_id, name), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE UserSettings ADD CONSTRAINT FK_2847E61CA76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
}
|
||||
|
||||
|
@@ -16,7 +16,7 @@ class Version20150519173347 extends BaseMigration
|
||||
|
||||
$this->skipIf($schema->hasTable('Secrets'), 'Table already exists');
|
||||
|
||||
$this->addSql('CREATE TABLE Secrets (id INT AUTO_INCREMENT NOT NULL, creator_id INT NOT NULL, created DATETIME NOT NULL, token VARCHAR(40) COLLATE utf8_bin NOT NULL, INDEX IDX_48F428861220EA6 (creator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
|
||||
$this->addSql('CREATE TABLE IF NOT EXISTS Secrets (id INT AUTO_INCREMENT NOT NULL, creator_id INT NOT NULL, created DATETIME NOT NULL, token VARCHAR(40) COLLATE utf8_bin NOT NULL, INDEX IDX_48F428861220EA6 (creator_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');
|
||||
$this->addSql('ALTER TABLE Secrets ADD CONSTRAINT FK_48F428861220EA6 FOREIGN KEY (creator_id) REFERENCES Users (id)');
|
||||
}
|
||||
|
||||
|
@@ -23,7 +23,7 @@ class Version20161013115559 extends AbstractMigration
|
||||
// this up() migration is auto-generated, please modify it to your needs
|
||||
$this->abortIf($this->connection->getDatabasePlatform()->getName() != 'mysql', 'Migration can only be executed safely on \'mysql\'.');
|
||||
|
||||
$this->addSql("CREATE TABLE WebhookEventPayloads (id CHAR(36) NOT NULL COMMENT '(DC2Type:guid)', delivery_id INT DEFAULT NULL, request LONGTEXT NOT NULL, response LONGTEXT NOT NULL, status INT NOT NULL, headers LONGTEXT NOT NULL, UNIQUE INDEX UNIQ_B949629612136921 (delivery_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS WebhookEventPayloads (id CHAR(36) NOT NULL COMMENT '(DC2Type:guid)', delivery_id INT DEFAULT NULL, request LONGTEXT NOT NULL, response LONGTEXT NOT NULL, status INT NOT NULL, headers LONGTEXT NOT NULL, UNIQUE INDEX UNIQ_B949629612136921 (delivery_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;");
|
||||
$this->addSql("ALTER TABLE WebhookEventPayloads ADD CONSTRAINT FK_B949629612136921 FOREIGN KEY (delivery_id) REFERENCES WebhookEventDeliveries (id);");
|
||||
}
|
||||
|
||||
|
@@ -23,12 +23,12 @@ class WorkzoneMigration extends AbstractMigration
|
||||
public function doUpSql(Schema $schema)
|
||||
{
|
||||
|
||||
$this->addSql("CREATE TABLE Baskets (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, pusher_id INT DEFAULT NULL, name VARCHAR(128) NOT NULL, description LONGTEXT DEFAULT NULL, is_read TINYINT(1) NOT NULL, archived TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_13461873A76ED395 (user_id), INDEX IDX_13461873C2D98306 (pusher_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE StoryWZ (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, sbas_id INT NOT NULL, record_id INT NOT NULL, created DATETIME NOT NULL, INDEX IDX_E0D2CBAEA76ED395 (user_id), UNIQUE INDEX user_story (user_id, sbas_id, record_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ValidationSessions (id INT AUTO_INCREMENT NOT NULL, initiator_id INT NOT NULL, basket_id INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, expires DATETIME DEFAULT NULL, INDEX IDX_5B9DFB067DB3B714 (initiator_id), UNIQUE INDEX UNIQ_5B9DFB061BE1FB52 (basket_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ValidationDatas (id INT AUTO_INCREMENT NOT NULL, participant_id INT DEFAULT NULL, basket_element_id INT DEFAULT NULL, agreement TINYINT(1) DEFAULT NULL, note LONGTEXT DEFAULT NULL, updated DATETIME NOT NULL, INDEX IDX_70E84DDC9D1C3019 (participant_id), INDEX IDX_70E84DDCE989605 (basket_element_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE BasketElements (id INT AUTO_INCREMENT NOT NULL, basket_id INT DEFAULT NULL, record_id INT NOT NULL, sbas_id INT NOT NULL, ord INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_C0B7ECB71BE1FB52 (basket_id), UNIQUE INDEX unique_recordcle (basket_id, sbas_id, record_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE ValidationParticipants (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, is_aware TINYINT(1) NOT NULL, is_confirmed TINYINT(1) NOT NULL, can_agree TINYINT(1) NOT NULL, can_see_others TINYINT(1) NOT NULL, reminded DATETIME DEFAULT NULL, validation_session_id INT DEFAULT NULL, INDEX IDX_17850D7BF25B0F5B (validation_session_id), INDEX IDX_17850D7BA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS Baskets (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, pusher_id INT DEFAULT NULL, name VARCHAR(128) NOT NULL, description LONGTEXT DEFAULT NULL, is_read TINYINT(1) NOT NULL, archived TINYINT(1) NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_13461873A76ED395 (user_id), INDEX IDX_13461873C2D98306 (pusher_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS StoryWZ (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, sbas_id INT NOT NULL, record_id INT NOT NULL, created DATETIME NOT NULL, INDEX IDX_E0D2CBAEA76ED395 (user_id), UNIQUE INDEX user_story (user_id, sbas_id, record_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ValidationSessions (id INT AUTO_INCREMENT NOT NULL, initiator_id INT NOT NULL, basket_id INT DEFAULT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, expires DATETIME DEFAULT NULL, INDEX IDX_5B9DFB067DB3B714 (initiator_id), UNIQUE INDEX UNIQ_5B9DFB061BE1FB52 (basket_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ValidationDatas (id INT AUTO_INCREMENT NOT NULL, participant_id INT DEFAULT NULL, basket_element_id INT DEFAULT NULL, agreement TINYINT(1) DEFAULT NULL, note LONGTEXT DEFAULT NULL, updated DATETIME NOT NULL, INDEX IDX_70E84DDC9D1C3019 (participant_id), INDEX IDX_70E84DDCE989605 (basket_element_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS BasketElements (id INT AUTO_INCREMENT NOT NULL, basket_id INT DEFAULT NULL, record_id INT NOT NULL, sbas_id INT NOT NULL, ord INT NOT NULL, created DATETIME NOT NULL, updated DATETIME NOT NULL, INDEX IDX_C0B7ECB71BE1FB52 (basket_id), UNIQUE INDEX unique_recordcle (basket_id, sbas_id, record_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("CREATE TABLE IF NOT EXISTS ValidationParticipants (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, is_aware TINYINT(1) NOT NULL, is_confirmed TINYINT(1) NOT NULL, can_agree TINYINT(1) NOT NULL, can_see_others TINYINT(1) NOT NULL, reminded DATETIME DEFAULT NULL, validation_session_id INT DEFAULT NULL, INDEX IDX_17850D7BF25B0F5B (validation_session_id), INDEX IDX_17850D7BA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB");
|
||||
$this->addSql("ALTER TABLE Baskets ADD CONSTRAINT FK_13461873A76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE Baskets ADD CONSTRAINT FK_13461873C2D98306 FOREIGN KEY (pusher_id) REFERENCES Users (id)");
|
||||
$this->addSql("ALTER TABLE StoryWZ ADD CONSTRAINT FK_E0D2CBAEA76ED395 FOREIGN KEY (user_id) REFERENCES Users (id)");
|
||||
|
@@ -13,6 +13,7 @@ namespace Alchemy\Phrasea\Setup\Version;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Doctrine\DBAL\Driver\Statement;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* In version 3.9 the user table have been removed.
|
||||
@@ -42,23 +43,33 @@ class MailChecker
|
||||
* Returns users with duplicated emails
|
||||
*
|
||||
* @return array An array of User
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getWrongEmailUsers()
|
||||
{
|
||||
if (version_compare($this->appbox->get_version(), '3.9', '>=')) {
|
||||
return [];
|
||||
}
|
||||
$tests = [
|
||||
"SELECT usr_mail, usr_id, last_conn, usr_login FROM usr WHERE NOT ISNULL(usr_mail)",
|
||||
"SELECT email AS usr_mail, id AS usr_id, last_connection AS last_conn, login AS usr_login FROM Users WHERE NOT ISNULL(email)"
|
||||
];
|
||||
|
||||
$builder = $this->appbox->get_connection()->createQueryBuilder();
|
||||
/** @var Statement $stmt */
|
||||
$stmt = $builder
|
||||
->select('u.usr_mail', 'u.usr_id', 'u.last_conn', 'u.usr_login')
|
||||
->from($this->table, 'u')
|
||||
->where($builder->expr()->isNotNull('u.usr_mail'))
|
||||
->execute()
|
||||
;
|
||||
$e = null;
|
||||
foreach($tests as $sql) {
|
||||
try {
|
||||
$rs = null;
|
||||
$stmt = $this->appbox->get_connection()->prepare($sql);
|
||||
$stmt->execute();
|
||||
$rs = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
break;
|
||||
}
|
||||
catch (Exception $e) {
|
||||
// no-op
|
||||
}
|
||||
}
|
||||
|
||||
if(is_null($rs)) {
|
||||
throw $e;
|
||||
}
|
||||
|
||||
$users = [];
|
||||
|
||||
|
@@ -12,6 +12,8 @@
|
||||
namespace Alchemy\Phrasea\Setup\Version\PreSchemaUpgrade;
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
/**
|
||||
* Collection of Doctrine schema pre-upgrades
|
||||
@@ -31,7 +33,7 @@ class PreSchemaUpgradeCollection
|
||||
*
|
||||
* @param Application $app
|
||||
*/
|
||||
public function apply(Application $app)
|
||||
public function apply(Application $app, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$applied = [];
|
||||
|
||||
|
@@ -11,6 +11,8 @@
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Setup\Version\MailChecker;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Yaml\Dumper;
|
||||
|
||||
class Setup_Upgrade
|
||||
@@ -27,7 +29,7 @@ class Setup_Upgrade
|
||||
*/
|
||||
private $recommendations = [];
|
||||
|
||||
public function __construct(Application $app, $force = false)
|
||||
public function __construct(Application $app, InputInterface $input, OutputInterface $output, $force = false)
|
||||
{
|
||||
if ($force) {
|
||||
$this->remove_lock_file();
|
||||
|
@@ -18,8 +18,11 @@ use Alchemy\Phrasea\Core\Version\AppboxVersionRepository;
|
||||
use Alchemy\Phrasea\Databox\DataboxConnectionProvider;
|
||||
use Alchemy\Phrasea\Databox\DataboxRepository;
|
||||
use Alchemy\Phrasea\Filesystem\PhraseanetFilesystem as Filesystem;
|
||||
use Alchemy\Phrasea\Setup\Version\PreSchemaUpgrade\PreSchemaUpgradeCollection;
|
||||
use Doctrine\ORM\Tools\SchemaTool;
|
||||
use MediaAlchemyst\Alchemyst;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
use Symfony\Component\HttpFoundation\File\File as SymfoFile;
|
||||
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
@@ -182,14 +185,18 @@ class appbox extends base
|
||||
return self::BASE_TYPE;
|
||||
}
|
||||
|
||||
public function forceUpgrade(Setup_Upgrade $upgrader, Application $app)
|
||||
public function forceUpgrade(Setup_Upgrade $upgrader, Application $app, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$from_version = $this->get_version();
|
||||
|
||||
$app['phraseanet.cache-service']->flushAll();
|
||||
|
||||
// Executes stuff before applying patches
|
||||
$app['phraseanet.pre-schema-upgrader']->apply($app);
|
||||
/** @var PreSchemaUpgradeCollection $psu */
|
||||
$psu = $app['phraseanet.pre-schema-upgrader'];
|
||||
$psu->apply($app, $input, $output);
|
||||
|
||||
$finder = new Finder();
|
||||
$in = [];
|
||||
@@ -222,8 +229,8 @@ class appbox extends base
|
||||
|
||||
// do not apply patches
|
||||
// just update old database schema
|
||||
// it is need before applying patches
|
||||
$advices = $this->upgradeDB(false, $app);
|
||||
// it is needed before applying patches
|
||||
$advices = $this->upgradeDB(false, $input, $output);
|
||||
|
||||
// update also the doctrine table schema before applying patch
|
||||
if ($app['orm.em']->getConnection()->getDatabasePlatform()->supportsAlterTable()) {
|
||||
@@ -233,17 +240,17 @@ class appbox extends base
|
||||
}
|
||||
|
||||
foreach ($this->get_databoxes() as $s) {
|
||||
$advices = array_merge($advices, $s->upgradeDB(false, $app));
|
||||
$advices = array_merge($advices, $s->upgradeDB(false, $input, $output));
|
||||
}
|
||||
|
||||
// then apply patches
|
||||
$advices = $this->upgradeDB(true, $app);
|
||||
$advices = $this->upgradeDB(true, $input, $output);
|
||||
|
||||
foreach ($this->get_databoxes() as $s) {
|
||||
$advices = array_merge($advices, $s->upgradeDB(true, $app));
|
||||
$advices = array_merge($advices, $s->upgradeDB(true, $input, $output));
|
||||
}
|
||||
|
||||
$this->post_upgrade($app);
|
||||
$this->post_upgrade($app, $input, $output);
|
||||
|
||||
$app['phraseanet.cache-service']->flushAll();
|
||||
|
||||
@@ -261,15 +268,32 @@ class appbox extends base
|
||||
return $advices;
|
||||
}
|
||||
|
||||
protected function post_upgrade(Application $app)
|
||||
protected function post_upgrade(Application $app, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$this->apply_patches($this->get_version(), $app['phraseanet.version']->getNumber(), true);
|
||||
$this->setVersion($app['phraseanet.version']);
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$output->writeln(sprintf("into post_upgrade()"));
|
||||
$this->apply_patches($this->get_version(), $app['phraseanet.version']->getNumber(), true, $input, $output);
|
||||
/** @var Alchemy\Phrasea\Core\Version $phrVersion */
|
||||
$phrVersion = $app['phraseanet.version'];
|
||||
if($dry) {
|
||||
$output->writeln(sprintf("dry : NOT setting version of \"%s\" to %s", $this->get_dbname(), $phrVersion->getNumber()));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf("setting version of \"%s\" to %s", $this->get_dbname(), $phrVersion->getNumber()));
|
||||
$this->setVersion($phrVersion);
|
||||
}
|
||||
|
||||
foreach ($this->get_databoxes() as $databox) {
|
||||
$databox->apply_patches($databox->get_version(), $app['phraseanet.version']->getNumber(), true);
|
||||
$databox->apply_patches($databox->get_version(), $app['phraseanet.version']->getNumber(), true, $input, $output);
|
||||
if($dry) {
|
||||
$output->writeln(sprintf("dry : NOT setting version of \"%s\" to %s", $databox->get_dbname(), $phrVersion->getNumber()));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf("setting version of \"%s\" to %s", $databox->get_dbname(), $phrVersion->getNumber()));
|
||||
$databox->setVersion($app['phraseanet.version']);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@@ -14,6 +14,8 @@ use Alchemy\Phrasea\Core\Connection\ConnectionSettings;
|
||||
use Alchemy\Phrasea\Core\Database\DatabaseMaintenanceService;
|
||||
use Alchemy\Phrasea\Core\Version as PhraseaVersion;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
abstract class base implements cache_cacheableInterface
|
||||
{
|
||||
@@ -226,11 +228,14 @@ abstract class base implements cache_cacheableInterface
|
||||
}
|
||||
}
|
||||
|
||||
protected function upgradeDb($applyPatches)
|
||||
protected function upgradeDb($applyPatches, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$output->writeln(sprintf("into upgradeDb(applyPatches=%s) for base \"%s\"", $applyPatches?'true':'false', $this->get_dbname()));
|
||||
$service = new DatabaseMaintenanceService($this->app, $this->connection);
|
||||
|
||||
return $service->upgradeDatabase($this, $applyPatches);
|
||||
return $service->upgradeDatabase($this, $applyPatches, $input, $output);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -276,10 +281,12 @@ abstract class base implements cache_cacheableInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function apply_patches($from, $to, $post_process)
|
||||
public function apply_patches($from, $to, $post_process, InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$service = new DatabaseMaintenanceService($this->app, $this->connection);
|
||||
|
||||
return $service->applyPatches($this, $from, $to, $post_process);
|
||||
return $service->applyPatches($this, $from, $to, $post_process, $input, $output);
|
||||
}
|
||||
}
|
||||
|
@@ -11,6 +11,7 @@
|
||||
|
||||
use Alchemy\Phrasea\Command\Command;
|
||||
use Alchemy\Phrasea\Core\Version;
|
||||
use Alchemy\Phrasea\Setup\ConfigurationTester;
|
||||
use Symfony\Component\Console\Input\ArrayInput;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Input\InputOption;
|
||||
@@ -28,13 +29,16 @@ class module_console_systemUpgrade extends Command
|
||||
->addOption('yes', 'y', InputOption::VALUE_NONE, 'Answers yes to all questions and do not ask the user')
|
||||
->addOption('force', 'f', InputOption::VALUE_NONE, 'Forces the upgrade even if there is a concurrent upgrade')
|
||||
->addOption('dump', 'd', InputOption::VALUE_NONE, 'Dumps SQL queries that can be used to clean database.')
|
||||
->addOption('stderr', 's', InputOption::VALUE_NONE, 'Dumps SQL queries to stderr');
|
||||
->addOption('stderr', 's', InputOption::VALUE_NONE, 'Dumps SQL queries to stderr')
|
||||
->addOption('dry', null, InputOption::VALUE_NONE, 'List patchs, do no apply changes');
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
protected function doExecute(InputInterface $input, OutputInterface $output)
|
||||
{
|
||||
$dry = !!$input->getOption('dry');
|
||||
|
||||
$pluginAutoloader = rtrim($this->container['root.path'], '\\/') . '/plugins/autoload.php';
|
||||
|
||||
if (file_exists($pluginAutoloader)) {
|
||||
@@ -49,11 +53,19 @@ class module_console_systemUpgrade extends Command
|
||||
|
||||
$interactive = !$input->getOption('yes');
|
||||
|
||||
while ($migrations = $this->container['phraseanet.configuration-tester']->getMigrations()) {
|
||||
/** @var ConfigurationTester $configurationTester */
|
||||
$configurationTester = $this->container['phraseanet.configuration-tester'];
|
||||
while ($migrations = $configurationTester->getMigrations($input, $output)) {
|
||||
foreach ($migrations as $migration) {
|
||||
if($dry) {
|
||||
$output->writeln(sprintf("dry : NOT applying migration \"%s\"", get_class($migration)));
|
||||
}
|
||||
else {
|
||||
$output->writeln(sprintf("applying migration \"%s\"", get_class($migration)));
|
||||
$migration->migrate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$this->getService('phraseanet.configuration-tester')->isInstalled()) {
|
||||
throw new \RuntimeException('Phraseanet must be set-up');
|
||||
@@ -76,14 +88,15 @@ class module_console_systemUpgrade extends Command
|
||||
$output->write(sprintf('Upgrading... from version <info>%s</info> to <info>%s</info>', $this->container->getApplicationBox()->get_version(), $version->getNumber()), true);
|
||||
|
||||
try {
|
||||
$upgrader = new Setup_Upgrade($this->container, $input->getOption('force'));
|
||||
// Setup_Upgrade will call MailChecker
|
||||
$upgrader = new Setup_Upgrade($this->container, $input, $output, $input->getOption('force'));
|
||||
} catch (\Exception_Setup_FixBadEmailAddresses $e) {
|
||||
return $output->writeln(sprintf('<error>You have to fix your database before upgrade with the system:mailCheck command </error>'));
|
||||
}
|
||||
|
||||
/** @var appbox $appBox */
|
||||
$appBox = $this->getService('phraseanet.appbox');
|
||||
$queries = $appBox->forceUpgrade($upgrader, $this->container);
|
||||
$queries = $appBox->forceUpgrade($upgrader, $this->container, $input, $output);
|
||||
/**
|
||||
* todo (?) combine schema changes on a table as a simngle sql
|
||||
* because on big tables like logs, adding 2 columns is 2 very long sql
|
||||
@@ -126,9 +139,14 @@ class module_console_systemUpgrade extends Command
|
||||
|
||||
if (null !== $this->getApplication()) {
|
||||
$command = $this->getApplication()->find('crossdomain:generate');
|
||||
$command->run(new ArrayInput(array(
|
||||
if($dry) {
|
||||
$output->writeln("dry : NOT running 'crossdomain:generate'");
|
||||
}
|
||||
else {
|
||||
$command->run(new ArrayInput([
|
||||
'command' => 'crossdomain:generate'
|
||||
)), $output);
|
||||
]), $output);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$output->write('<info>Canceled</info>', true);
|
||||
@@ -136,19 +154,25 @@ class module_console_systemUpgrade extends Command
|
||||
$output->write('System upgrade Finished !', true);
|
||||
|
||||
// need to fix autoincrements after system:upgrade
|
||||
if($dry) {
|
||||
$output->writeln("dry : NOT fixing autoincrements");
|
||||
$returnCode = 0;
|
||||
}
|
||||
else {
|
||||
$output->write('Start fixing autoincrements !', true);
|
||||
|
||||
$fixAutoincrementCommand = $this->getApplication()->find('system:fix-autoincrements');
|
||||
|
||||
$arguments = array(
|
||||
$arguments = [
|
||||
'command' => 'system:fix-autoincrements',
|
||||
);
|
||||
];
|
||||
|
||||
$fixAutoincrementInput = new ArrayInput($arguments);
|
||||
|
||||
$returnCode = $fixAutoincrementCommand->run($fixAutoincrementInput, $output);
|
||||
|
||||
$output->write('Fixing autoincrements finished after system:upgrade', true);
|
||||
}
|
||||
|
||||
return $returnCode;
|
||||
}
|
||||
|
@@ -59,12 +59,12 @@ class patch_390alpha6a extends patchAbstract
|
||||
*/
|
||||
public function apply(base $appbox, Application $app)
|
||||
{
|
||||
$sql = 'DELETE FROM FtpExports';
|
||||
$sql = 'DELETE FROM FtpExportElements';
|
||||
$stmt = $app->getApplicationBox()->get_connection()->prepare($sql);
|
||||
$stmt->execute();
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM FtpExportElements';
|
||||
$sql = 'DELETE FROM FtpExports';
|
||||
$stmt = $app->getApplicationBox()->get_connection()->prepare($sql);
|
||||
$stmt->execute();
|
||||
$stmt->closeCursor();
|
||||
|
@@ -40,7 +40,7 @@ class patch_400alpha9a implements patchInterface
|
||||
*/
|
||||
public function require_all_upgrades()
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user