Add temporary test for migrating int to string
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
parent
3cf7041c94
commit
ace90466d6
|
@ -13,6 +13,7 @@ use Doctrine\DBAL\DBALException;
|
||||||
use Doctrine\DBAL\Platforms\OraclePlatform;
|
use Doctrine\DBAL\Platforms\OraclePlatform;
|
||||||
use Doctrine\DBAL\Schema\Schema;
|
use Doctrine\DBAL\Schema\Schema;
|
||||||
use Doctrine\DBAL\Schema\SchemaConfig;
|
use Doctrine\DBAL\Schema\SchemaConfig;
|
||||||
|
use OC\DB\SchemaWrapper;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -94,6 +95,26 @@ class MigratorTest extends \Test\TestCase {
|
||||||
return [$startSchema, $endSchema];
|
return [$startSchema, $endSchema];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Doctrine\DBAL\Schema\Schema[]
|
||||||
|
*/
|
||||||
|
private function getChangedTypeSchema($from, $to) {
|
||||||
|
$startSchema = new Schema([], [], $this->getSchemaConfig());
|
||||||
|
$table = $startSchema->createTable($this->tableName);
|
||||||
|
$table->addColumn('id', $from);
|
||||||
|
$table->addColumn('name', 'string');
|
||||||
|
$table->addIndex(['id'], $this->tableName . '_id');
|
||||||
|
|
||||||
|
$endSchema = new Schema([], [], $this->getSchemaConfig());
|
||||||
|
$table = $endSchema->createTable($this->tableName);
|
||||||
|
$table->addColumn('id', $to);
|
||||||
|
$table->addColumn('name', 'string');
|
||||||
|
$table->addIndex(['id'], $this->tableName . '_id');
|
||||||
|
|
||||||
|
return [$startSchema, $endSchema];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private function getSchemaConfig() {
|
private function getSchemaConfig() {
|
||||||
$config = new SchemaConfig();
|
$config = new SchemaConfig();
|
||||||
$config->setName($this->connection->getDatabase());
|
$config->setName($this->connection->getDatabase());
|
||||||
|
@ -123,6 +144,34 @@ class MigratorTest extends \Test\TestCase {
|
||||||
$this->fail('checkMigrate should have failed');
|
$this->fail('checkMigrate should have failed');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testChangeToString() {
|
||||||
|
list($startSchema, $endSchema) = $this->getChangedTypeSchema('integer', 'string');
|
||||||
|
$migrator = $this->manager->getMigrator();
|
||||||
|
$migrator->migrate($startSchema);
|
||||||
|
$schema = new SchemaWrapper($this->connection);
|
||||||
|
$table = $schema->getTable(substr($this->tableName, 3));
|
||||||
|
$this->assertEquals('integer', $table->getColumn('id')->getType()->getName());
|
||||||
|
|
||||||
|
$this->connection->insert($this->tableName, ['id' => 1, 'name' => 'foo']);
|
||||||
|
$this->connection->insert($this->tableName, ['id' => 2, 'name' => 'bar']);
|
||||||
|
$this->connection->insert($this->tableName, ['id' => 3, 'name' => 'qwerty']);
|
||||||
|
|
||||||
|
$migrator->checkMigrate($endSchema);
|
||||||
|
$migrator->migrate($endSchema);
|
||||||
|
$this->addToAssertionCount(1);
|
||||||
|
|
||||||
|
$qb = $this->connection->getQueryBuilder();
|
||||||
|
$result = $qb->select('*')->from(substr($this->tableName, 3))->execute();
|
||||||
|
$this->assertEquals([
|
||||||
|
['id' => 1, 'name' => 'foo'],
|
||||||
|
['id' => 2, 'name' => 'bar'],
|
||||||
|
['id' => 3, 'name' => 'qwerty']
|
||||||
|
], $result->fetchAll());
|
||||||
|
$schema = new SchemaWrapper($this->connection);
|
||||||
|
$table = $schema->getTable(substr($this->tableName, 3));
|
||||||
|
$this->assertEquals('string', $table->getColumn('id')->getType()->getName());
|
||||||
|
}
|
||||||
|
|
||||||
public function testUpgrade() {
|
public function testUpgrade() {
|
||||||
list($startSchema, $endSchema) = $this->getDuplicateKeySchemas();
|
list($startSchema, $endSchema) = $this->getDuplicateKeySchemas();
|
||||||
$migrator = $this->manager->getMigrator();
|
$migrator = $this->manager->getMigrator();
|
||||||
|
|
Loading…
Reference in New Issue