Не удалось создать таблицу с помощью YIIC Migreate create
Я только начал изучать фреймворк YII и теперь сталкиваюсь с проблемой при попытке создать таблицу через YIIC MIGRATE. Ниже приведен код моей таблицы.
class m140627_072906_create_test_table extends CDbMigration
{
public function up()
{
$this->create('tbl_locations',
array(
'id'=>'pk',
'location_name'=>'string NOT NULL',
'create_time'=>'datetime NOT NULL',
'create_user_id'=>'int(11) NOT NULL',
'update_time'=>'datetime NOT NULL',
'update_user_id'=>'int(11) NOT NULL',
), 'ENGINE=InnoDB'
);
}
}
public function down()
{
echo "m140627_072906_create_test_table does not support migration down.\n";
return false;
}
}
Мой проект находится в C:\wamp\www\bookmyroom\ и ниже структура папок
Том C:\wamp\www\bookmyroom>dir на диске C не имеет метки. Серийный номер тома: 5291-FE18. Каталог C: \ wamp \ www \ bookmyroom
06/25/2014 08:58 PM <DIR> .
06/25/2014 08:58 PM <DIR> ..
06/27/2014 12:32 PM <DIR> assets
06/25/2014 07:05 PM <DIR> css
06/25/2014 09:04 PM <DIR> framework
06/25/2014 07:05 PM <DIR> images
06/25/2014 07:05 PM 466 index-test.php
06/25/2014 09:10 PM 456 index.php
06/25/2014 07:08 PM <DIR> nbproject
06/25/2014 07:05 PM <DIR> protected
06/25/2014 07:05 PM <DIR> themes
2 File(s) 922 bytes
9 Dir(s) 8,986,624,000 bytes free
Я запустил команду YIIC MIgrate внутри защищенной папки. Я получаю приведенную ниже ошибку при запуске команды migrate.
C:\wamp\www\bookmyroom\protected>YIIC Migrate
Yii Migration Tool v1.0 (based on Yii v1.1.14)
Total 1 new migration to be applied:
m140627_074906_create_table_locations
Apply the above migration? (yes|no) [no]:y
*** applying m140627_074906_create_table_locations
exception 'CException' with message 'm140627_074906_create_table_locations and its
behaviors do not have a method or closure named "create".' in
C:\wamp\www\yii\framework\base\CComponent.php:266
Stack trace:
#0
C:\wamp\www\bookmyroom\protected\migrations\m140627_074906_create_table_locations.php
(16): CComponent->__call('create', Array)
#1
C:\wamp\www\bookmyroom\protected\migrations\m140627_074906_create_table_locations.php
(16): m140627_074906_create_table_locations->create('tbl_locat
ions', Array, 'ENGINE=InnoDB')
#2 C:\wamp\www\yii\framework\cli\commands\MigrateCommand.php(385):
m140627_074906_create_table_locations->up()
#3 C:\wamp\www\yii\framework\cli\commands\MigrateCommand.php(109):
MigrateCommand->migrateUp('m140627_074906_...')
#4 [internal function]: MigrateCommand->actionUp(Array)
#5 C:\wamp\www\yii\framework\console\CConsoleCommand.php(172):
ReflectionMethod->invokeArgs(Object(MigrateCommand), Array)
#6 C:\wamp\www\yii\framework\console\CConsoleCommandRunner.php(71):
CConsoleCommand->run(Array)
#7 C:\wamp\www\yii\framework\console\CConsoleApplication.php(92):
CConsoleCommandRunner->run(Array)
#8 C:\wamp\www\yii\framework\base\CApplication.php(180):
CConsoleApplication->processRequest()
#9 C:\wamp\www\yii\framework\yiic.php(33): CApplication->run()
#10 C:\wamp\www\bookmyroom\protected\yiic.php(7): require_once('C:\wamp\www\yii...')
#11 {main}
Можете ли вы проверить и сообщить мне ошибку, с которой я сталкиваюсь. Если есть какие-либо исправления, пожалуйста, дайте мне знать.
1 ответ
Попробуйте использовать выполнить
$this->execute("CREATE TABLE `tbl_locations` (
'location_name'=>'string NOT NULL',
'create_time'=>'datetime NOT NULL',
'create_user_id'=>'int(11) NOT NULL',
'update_time'=>'datetime NOT NULL',
'update_user_id'=>'int(11) NOT NULL'
PRIMARY KEY (`id`),
) ENGINE=InnoDB");