我想在我当前的项目中使用数据库迁移工具。它是zf3中的一个php项目,因此我决定进行学说迁移。 Here is pretty good example, how to use this tool
问题是,我从我的代码中添加表格,然后将其保存在单独的表格中。在init(第一次初始迁移)我想删除所有由程序添加的表(来自我的代码 - 数量不同),只需创建表,软件将保存创建的表。我没有找到一个简单的解决方案,如何删除除数据库之外的所有表,因此我想,我刷新整个数据库然后创建表,我需要。
为了不删除迁移表,我创建了分隔数据库,其中只存在这一个表。现在,我想更改数据库,刷新它,创建表,保存所有创建的表,并将数据库更改为迁移,以便保存迁移。
以下是代码,它将阐明我想做的事情:
public function preUp(Schema $schema) {
$this->addSql('use migration');
$this->addSql('drop database osm');
$this->addSql('create database osm');
$this->addSql('use osm');
}
public function up(Schema $schema){
$table = $schema->createTable('axx');
$table->addColumn('id', 'integer', ['autoincrement'=>true]);
$table->addColumn('title', 'text', ['notnull'=>true]);
$table->addColumn('date_created', 'datetime', ['notnull'=>true]);
$table->setPrimaryKey(['id']);
$table->addOption('engine' , 'InnoDB');
}
public function postUp(Schema $schema){
$this->addSql('use migration');
}
此代码无法正常工作 - 将在迁移数据库中创建表格帖子。为什么?除此之外,我想一般来说这个问题有一个更好的解决方案,我想听听。