миграция базы данных не работает в yii - PullRequest
2 голосов
/ 14 июля 2011

В фреймворке Yii я использовал миграцию точно так же, как ./yiic migrate create tbl_demo он сделал файл миграции, в который я ввел значения up как

<?php

class m110714_094912_tbl_demo extends CDbMigration
{
  public function up()
  {
    $this-> createTable('{{tbl_demo}}', array(
      'id' => 'pk',
      'name' => 'VARCHAR \'80\' NOT NULL',
    ))
  }

  public function down()
  {
    echo "m110714_094912_tbl_demo does not support migration down.\n";
    return false;
  }

  /*
  // Use safeUp/safeDown to do migration with transaction
  public function safeUp()
  {
  }

  public function safeDown()
  {
  }
  */
}

, после ввода этого он показывает сообщение типа

New migration created successfully.

Но всякий раз, когда я проверяю базу данных mysql, таблица для tbl_demo не обнаруживается.Я также поместил все значения up в safeup, но это не дало никакого результата. Все работает нормально, но не знаете, почему новая таблица не создается?Пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 16 апреля 2013

Я только что исправил эту проблему сам.

Ответ таков: по умолчанию /protected/config/console.php поставляется из коробки, настроенной для использования базы данных SQLite с именем testdrive.db. Вы должны настроить его для общения с базой данных MySQL.

2 голосов
/ 14 июля 2011

Вам следует перейти в командную строку и вызвать yiic migrate up, и он спросит вас, хотите ли вы применить миграцию tbl_demo, и когда вы введете «да», он выполнит код. Сообщение New migration created successfully. появляется при выполнении yiic migrate create -something-, а не при применении миграции.

Если вы хотите применить миграцию снова, вы должны удалить строку, касающуюся миграции "tbl_demo", в таблице базы данных "миграций", которую yiic создал для регистрации миграций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...