[ticket/14831] Compare depends_on for migrations and remove prefixless names

PHPBB3-14831
This commit is contained in:
Marc Alexander 2016-10-23 22:17:19 +02:00
parent c891277996
commit 6f8c0df1c6
No known key found for this signature in database
GPG key ID: 50E0D2423696F995

View file

@ -55,21 +55,21 @@ class migrations_deduplicate_entries extends \phpbb\db\migration\migration
$prepended_name = preg_replace('#^(?!\\\)#', '\\\$0', $name);
$prefixless_name = preg_replace('#(^\\\)([^\\\].+)#', '$2', $name);
if ($prepended_name !== $name && isset($migration_state[$prepended_name]) && $migration_state[$prepended_name] === $migration_state[$name])
if ($prepended_name != $name && isset($migration_state[$prepended_name]) && $migration_state[$prepended_name]['migration_depends_on'] == $migration_state[$name]['migration_depends_on'])
{
$duplicate_migrations[] = $name;
unset($migration_state[$prepended_name]);
}
else if ($prefixless_name !== $name && isset($migration_state[$prefixless_name]) && $migration_state[$prefixless_name] === $migration_state[$name])
else if ($prefixless_name != $name && isset($migration_state[$prefixless_name]) && $migration_state[$prefixless_name]['migration_depends_on'] == $migration_state[$name]['migration_depends_on'])
{
$duplicate_migrations[] = $name;
$duplicate_migrations[] = $prefixless_name;
unset($migration_state[$prefixless_name]);
}
}
if (count($duplicate_migrations))
{
$sql = 'DELETE *
$sql = 'DELETE
FROM ' . $this->table_prefix . 'migrations
WHERE ' . $this->db->sql_in_set('migration_name', $duplicate_migrations);
$this->db->sql_query($sql);