如何使用doctrine迁移重新创建数据库?

时间:2017-07-20 07:08:08

标签: php database doctrine-orm dbmigrate

我想在我当前的项目中使用数据库迁移工具。它是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');
}

此代码无法正常工作 - 将在迁移数据库中创建表格帖子。为什么?除此之外,我想一般来说这个问题有一个更好的解决方案,我想听听。

0 个答案:

没有答案