Only create the schema when moving between databases
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
596655fa1a
commit
891de38080
|
@ -245,7 +245,7 @@ class ConvertType extends Command implements CompletionAwareInterface {
|
||||||
$currentMigration = $fromMS->getMigration('current');
|
$currentMigration = $fromMS->getMigration('current');
|
||||||
if ($currentMigration !== '0') {
|
if ($currentMigration !== '0') {
|
||||||
$toMS = new MigrationService($app, $toDB);
|
$toMS = new MigrationService($app, $toDB);
|
||||||
$toMS->migrate($currentMigration);
|
$toMS->migrate($currentMigration, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -376,13 +376,14 @@ class MigrationService {
|
||||||
* Applies all not yet applied versions up to $to
|
* Applies all not yet applied versions up to $to
|
||||||
*
|
*
|
||||||
* @param string $to
|
* @param string $to
|
||||||
|
* @param bool $schemaOnly
|
||||||
* @throws \InvalidArgumentException
|
* @throws \InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function migrate($to = 'latest') {
|
public function migrate($to = 'latest', $schemaOnly = false) {
|
||||||
// read known migrations
|
// read known migrations
|
||||||
$toBeExecuted = $this->getMigrationsToExecute($to);
|
$toBeExecuted = $this->getMigrationsToExecute($to);
|
||||||
foreach ($toBeExecuted as $version) {
|
foreach ($toBeExecuted as $version) {
|
||||||
$this->executeStep($version);
|
$this->executeStep($version, $schemaOnly);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -432,14 +433,17 @@ class MigrationService {
|
||||||
* Executes one explicit version
|
* Executes one explicit version
|
||||||
*
|
*
|
||||||
* @param string $version
|
* @param string $version
|
||||||
|
* @param bool $schemaOnly
|
||||||
* @throws \InvalidArgumentException
|
* @throws \InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function executeStep($version) {
|
public function executeStep($version, $schemaOnly = false) {
|
||||||
$instance = $this->createInstance($version);
|
$instance = $this->createInstance($version);
|
||||||
|
|
||||||
$instance->preSchemaChange($this->output, function() {
|
if (!$schemaOnly) {
|
||||||
return new SchemaWrapper($this->connection);
|
$instance->preSchemaChange($this->output, function() {
|
||||||
}, ['tablePrefix' => $this->connection->getPrefix()]);
|
return new SchemaWrapper($this->connection);
|
||||||
|
}, ['tablePrefix' => $this->connection->getPrefix()]);
|
||||||
|
}
|
||||||
|
|
||||||
$toSchema = $instance->changeSchema($this->output, function() {
|
$toSchema = $instance->changeSchema($this->output, function() {
|
||||||
return new SchemaWrapper($this->connection);
|
return new SchemaWrapper($this->connection);
|
||||||
|
@ -450,9 +454,11 @@ class MigrationService {
|
||||||
$toSchema->performDropTableCalls();
|
$toSchema->performDropTableCalls();
|
||||||
}
|
}
|
||||||
|
|
||||||
$instance->postSchemaChange($this->output, function() {
|
if (!$schemaOnly) {
|
||||||
return new SchemaWrapper($this->connection);
|
$instance->postSchemaChange($this->output, function() {
|
||||||
}, ['tablePrefix' => $this->connection->getPrefix()]);
|
return new SchemaWrapper($this->connection);
|
||||||
|
}, ['tablePrefix' => $this->connection->getPrefix()]);
|
||||||
|
}
|
||||||
|
|
||||||
$this->markAsExecuted($version);
|
$this->markAsExecuted($version);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue