Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for configurable migration column length. #538

Merged
merged 1 commit into from
May 12, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 30 additions & 1 deletion lib/Doctrine/DBAL/Migrations/Configuration/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,15 @@ class Configuration
*/
private $migrationsColumnName = 'version';

/**
* The length of the string field in the migrations table. This can often be left at its default
* value, but can be modified if necessary, for example, to 191 for early MySQL servers using the
* UTF8MB4 character set.
*
* @var int
*/
private $migrationsColumnLength = 255;

/**
* The path to a directory where new migration classes will be written
*
Expand Down Expand Up @@ -318,6 +327,26 @@ public function getMigrationsColumnName()
return $this->migrationsColumnName;
}

/**
* Set the length of the migration string column.
*
* @param int $columnLength The migration string column length.
*/
public function setMigrationsColumnLength($columnLength)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing type declaration

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The codebase I'm PR'ing against doesn't have type declarations, so I was trying to stay consistent with that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The codebase has already been changed to require PHP 7.1 😉

{
$this->migrationsColumnLength = $columnLength;
}

/**
* Returns the length of the migration string column.
*
* @return int $migrationsColumnLength The migration string column length.
*/
public function getMigrationsColumnLength()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing type declaration

{
return $this->migrationsColumnLength;
}

/**
* Set the new migrations directory where new migration classes are generated
*
Expand Down Expand Up @@ -751,7 +780,7 @@ public function createMigrationTable()
}

$columns = [
$this->migrationsColumnName => new Column($this->migrationsColumnName, Type::getType('string'), ['length' => 255]),
$this->migrationsColumnName => new Column($this->migrationsColumnName, Type::getType('string'), ['length' => $this->migrationsColumnLength]),
];
$table = new Table($this->migrationsTableName, $columns);
$table->setPrimaryKey([$this->migrationsColumnName]);
Expand Down