Я использую Symfony 4+ для разработки нескольких веб-приложений, я разрабатываю на MariaDB, но также хотел бы иметь возможность развертывания в других базах данных.
Когда я генерирую миграцию базы данных, она создается с помощью SQL-запросов, например:
public function up(Schema $schema) {
$this->addSql('CREATE TABLE users ...');
}
public function down(Schema $schema) {
$this->addSql('DROP TABLE users');
}
Я бы предпочел, чтобы миграции использовали Представление схемы и генерировались следующим образом:
public function createSchema() {
$schema = new Schema();
$table = $schema->createTable('users');
$table->addColumn('id', 'integer', array(
'autoincrement' => true,
));
$table->setPrimaryKey(array('id'));
return $schema;
}
}
Есть ли способ настроить Symfony или DoctrineMigrationsBundle для создания миграций с использованием представления схемы?
(Вроде похоже, но не обязательно точное совпадение с Миграции Laravel.)
Приведенный выше код является примером, в настоящее время миграции генерируются с использованием $this->addSql(...);, но я хотел бы использовать представление объекта/схемы, как показано во втором примере.
Это какая-то помощь doctrine-project.org/projects/doctrine-migrations/en/1.7/…
Только немного, я прочитал эту страницу, но не могу найти нигде в документации Doctrine или Symfony или каких-либо результатов в Google о том, как реализовать это в Symfony, чтобы он генерировал миграции в стиле DBAL, которые используют представление схемы.
Когда вы захотите использовать PostgreSQL позже. Измените тип БД symfony.com/doc/master/cloud/services/postgresql.html и повторите миграцию. Это подойдет для PostgreSQL. Структура вашей базы данных находится в ваших сущностях.






В чем смысл? Если я правильно понимаю, таблица
usersуже создана, поэтому создавать ее заново не нужно.