PDA

View Full Version : مشکل در مایگریشن



tux-world
سه شنبه 10 دی 1392, 20:55 عصر
بعد اجرای مایگریشن که محتوای فایلم به این شکله:


class m131231_173214_create_project_table extends CDbMigration
{
public function up()
{
$this->createTable(
'tbl_project',
array(
'id'=>'pk',
'name'=>'string NOT NULL',
'description'=>'text NOT NULL',
'create_time'=>'datetime default NULL',
'create_user_is'=>'int(11) default NULL',
'update_time'=>'datetime default NULL',
'update_user_id'=>'int(11) default NULL',
),
'ENGINE = InnoDB'
);
}
public function down()
{
$this-dropTable('tbl_project');
}
}

با مشکل زیر روبرو میشم: ( البته از خود phpmyadmin جدول و فیلدهای جدول پاک شده )



Yii Migration Tool v1.0 (based on Yii v1.1.14)

Total 1 new migration to be applied:
m131231_173214_create_project_table

Apply the above migration? (yes|no) [no]:yes
*** applying m131231_173214_create_project_table
> create table tbl_project ...exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: CDbCommand failed to prepare the SQL statement: SQLSTATE[HY000]: General error: 1 near "ENGINE": syntax error. The SQL statement executed was: CREATE TABLE 'tbl_project' (
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"name" varchar(255) NOT NULL,
"description" text NOT NULL,
"create_time" datetime default NULL,
"create_user_is" int(11) default NULL,
"update_time" datetime default NULL,
"update_user_id" int(11) default NULL
) ENGINE = InnoDB' in /var/www/yii/framework/db/CDbCommand.php:358
Stack trace:
#0 /var/www/yii/framework/db/CDbCommand.php(1324): CDbCommand->execute()
#1 /var/www/yii/framework/db/CDbMigration.php(233): CDbCommand->createTable('tbl_project', Array, 'ENGINE = InnoDB')
#2 /var/www/yii/ts/protected/migrations/m131231_173214_create_project_table.php(19): CDbMigration->createTable('tbl_project', Array, 'ENGINE = InnoDB')
#3 /var/www/yii/framework/cli/commands/MigrateCommand.php(385): m131231_173214_create_project_table->up()
#4 /var/www/yii/framework/cli/commands/MigrateCommand.php(109): MigrateCommand->migrateUp('m131231_173214_...')
#5 [internal function]: MigrateCommand->actionUp(Array)
#6 /var/www/yii/framework/console/CConsoleCommand.php(172): ReflectionMethod->invokeArgs(Object(MigrateCommand), Array)
#7 /var/www/yii/framework/console/CConsoleCommandRunner.php(71): CConsoleCommand->run(Array)
#8 /var/www/yii/framework/console/CConsoleApplication.php(92): CConsoleCommandRunner->run(Array)
#9 /var/www/yii/framework/base/CApplication.php(180): CConsoleApplication->processRequest()
#10 /var/www/yii/framework/yiic.php(33): CApplication->run()
#11 /var/www/yii/ts/protected/yiic.php(7): require_once('/var/www/yii/fr...')
#12 /var/www/yii/ts/protected/yiic(4): require_once('/var/www/yii/ts...')


من خود مثالی که توی سی‌دی هم بود رو با نوشته هام جایگزین کردم ولی باز همین خطا رو میگیرم

mahmod2000
چهارشنبه 11 دی 1392, 07:41 صبح
class m131231_173214_create_project_table extends CDbMigration{ public function up() { $this->createTable( 'tbl_project', array( 'id'=>'pk', 'name'=>'string NOT NULL', 'description'=>'text NOT NULL', 'create_time'=>'datetime default NULL', 'create_user_is'=>'int(11) default NULL', 'update_time'=>'datetime default NULL', 'update_user_id'=>'int(11) default NULL', ), 'ENGINE=InnoDB' ); } public function down() { $this-dropTable('tbl_project'); }}


اینو تست کنید

tux-world
چهارشنبه 11 دی 1392, 09:26 صبح
هیچ فرقی نکرد. اصلا معلوم نیست مشکل از چیه

MMSHFE
چهارشنبه 11 دی 1392, 12:17 عصر
کد کامل Migration خودتون رو ضمیمه کنید.

tux-world
چهارشنبه 11 دی 1392, 14:50 عصر
مشکل رو پیدا کردم. فایل آموزشی رو دوباره مرور کردم چیزی در این مورد نبود. کلا مشکل از مایگرشن نبود. وقتی که از ابزار خط فرمانی Yii استفاده میشه خود Yii بر حسب نیازش میره تنظیمات رو از کنسول console.php بر میداره. به همین خاطر چون اتصال به بانک اطلاعاتی انجام و تعریف نشده بود نمیتونست. اون فایل رو اصلاح کردم الان مایگرشن درست کار میکنه.