yiic.php,php - yiic迁移错误,无法打开流 - 堆栈内存溢出

尝试使用Yii进行数据库迁移时,我是新来的一个问题。

首先,我使用:: :: / yiic migration create tr创建一个新的迁移

这给了我以下输出。

Yii迁移工具v1.0(基于Yii v1.1.14)

创建新的迁移'/var/www/html/Trackstar/protected/migrations/m130921_101251_tr.php'? (是|否)[否]:是已成功创建新迁移。

这表明我已经创建了一个新的迁移。

现在,我在up()和down()中添加了必要的ddl。 这是它的外观。

class m130921_101251_tr extends CDbMigration {

public function up() {

//create the issue table

$this->createTable('tbl_issue', array(

'id' => 'pk',

'name' => 'string NOT NULL',

'description' => 'text',

'project_id' => 'int(11) DEFAULT NULL',

'type_id' => 'int(11) DEFAULT NULL',

'status_id' => 'int(11) DEFAULT NULL',

'owner_id' => 'int(11) DEFAULT NULL',

'requester_id' => 'int(11) DEFAULT NULL',

'create_time' => 'datetime DEFAULT NULL',

'create_user_id' => 'int(11) DEFAULT NULL',

'update_time' => 'datetime DEFAULT NULL',

'update_user_id' => 'int(11) DEFAULT NULL',

), 'ENGINE=InnoDB');

//create the user table

$this->createTable('tbl_user', array(

'id' => 'pk',

'username' => 'string NOT NULL',

'email' => 'string NOT NULL',

'password' => 'string NOT NULL',

'last_login_time' => 'datetime DEFAULT NULL',

'create_time' => 'datetime DEFAULT NULL',

'create_user_id' => 'int(11) DEFAULT NULL',

'update_time' => 'datetime DEFAULT NULL',

'update_user_id' => 'int(11) DEFAULT NULL',

), 'ENGINE=InnoDB');

//create the assignment table that allows for many-to-many

//relationship between projects and users

$this->createTable('tbl_project_user_assignment', array(

'project_id' => 'int(11) NOT NULL',

'user_id' => 'int(11) NOT NULL',

'PRIMARY KEY (`project_id`,`user_id`)',

), 'ENGINE=InnoDB');

//foreign key relationships

//the tbl_issue.project_id is a reference to tbl_project.id

$this->addForeignKey("fk_issue_project", "tbl_issue", "project_id", "tbl_project", "id", "CASCADE", "RESTRICT");

//the tbl_issue.owner_id is a reference to tbl_user.id

$this->addForeignKey("fk_issue_owner", "tbl_issue", "owner_id", "tbl_user", "id", "CASCADE", "RESTRICT");

//the tbl_issue.requester_id is a reference to tbl_user.id

$this->addForeignKey("fk_issue_requester", "tbl_issue", "requester_id", "tbl_user", "id", "CASCADE", "RESTRICT");

//the tbl_project_user_assignment.project_id is a reference to tbl_project.id

$this->addForeignKey("fk_project_user", "tbl_project_user_assignment", "project_id", "tbl_project", "id", "CASCADE", "RESTRICT");

//the tbl_project_user_assignment.user_id is a reference to tbl_ user.id

$this->addForeignKey("fk_user_project", "tbl_project_user_assignment", "user_id", "tbl_user", "id", "CASCADE", "RESTRICT");

}

public function down() {

$this->truncateTable('tbl_project_user_assignment');

$this->truncateTable('tbl_issue');

$this->truncateTable('tbl_user');

$this->dropTable('tbl_project_user_assignment');

$this->dropTable('tbl_issue');

$this->dropTable('tbl_user');

}

/*

// Use safeUp/safeDown to do migration with transaction

public function safeUp()

{

}

public function safeDown()

{

}

*/

}

现在的问题是,每当我尝试使用./yiic migration应用此迁移时,它都会失败,并显示相同的错误。 这是我得到的示例输出。

[root@localhost protected]# ./yiic migrate

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

Total 1 new migration to be applied:

m130921_101251_tr

Apply the above migration? (yes|no) [no]:y

*** applying m130921_101251_tr

PHP Error[2]: include(m130921_101251_tr.php): failed to open stream: No such file or directory

in file /var/www/html/yii/framework/YiiBase.php at line 427

#0 /var/www/html/yii/framework/YiiBase.php(427): autoload()

#1 unknown(0): autoload()

#2 /var/www/html/yii/framework/cli/commands/MigrateCommand.php(429): spl_autoload_call()

#3 /var/www/html/yii/framework/cli/commands/MigrateCommand.php(384): MigrateCommand->instantiateMigration()

#4 /var/www/html/yii/framework/cli/commands/MigrateCommand.php(109): MigrateCommand->migrateUp()

#5 unknown(0): MigrateCommand->actionUp()

#6 /var/www/html/yii/framework/console/CConsoleCommand.php(172): ReflectionMethod->invokeArgs()

#7 /var/www/html/yii/framework/console/CConsoleCommandRunner.php(71): MigrateCommand->run()

#8 /var/www/html/yii/framework/console/CConsoleApplication.php(92): CConsoleCommandRunner->run()

#9 /var/www/html/yii/framework/base/CApplication.php(180): CConsoleApplication->processRequest()

#10 /var/www/html/yii/framework/yiic.php(33): CConsoleApplication->run()

#11 /var/www/html/Trackstar/protected/yiic.php(7): require_once()

#12 /var/www/html/Trackstar/protected/yiic(4): require_once()

我似乎找不到上述问题的解决方案。 我一直在谷歌,stackoverflow和yii论坛上搜索相关的答案,但我还没有找到答案。 请提供有关如何解决此问题的帮助。 我是Yii的新手,所以我仍然在学习,而且我喜欢它。 但是陷入第一步是一个真正的挫折。 任何帮助将不胜感激。

谢谢,Maxx

有关更多说明。 我发布了config / console.php和config / main.php

------------- config / console.php -------------------------

// This is the configuration for yiic console application.

// Any writable CConsoleApplication properties can be configured here.

return array(

'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

'name'=>'My Console Application',

// preloading 'log' component

'preload'=>array('log'),

// application components

'components'=>array(

// uncomment the following to use a MySQL database

'db'=>array(

'connectionString' => 'mysql:host=localhost;dbname=trackstar',

'emulatePrepare' => true,

'username' => 'user1',

'password' => 'mydb389',

'charset' => 'utf8',

),

'log'=>array(

'class'=>'CLogRouter',

'routes'=>array(

array(

'class'=>'CFileLogRoute',

'levels'=>'error, warning',

),

),

),

),

);

--------------------- console.php的结尾----------------------

------------------------ config / main.php --------------------- --

// uncomment the following to define a path alias

// Yii::setPathOfAlias('local','path/to/local-folder');

// This is the main Web application configuration. Any writable

// CWebApplication properties can be configured here.

return array(

'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',

'name'=>'My Web Application',

// preloading 'log' component

'preload'=>array('log'),

// autoloading model and component classes

'import'=>array(

'application.models.*',

'application.components.*',

),

'modules'=>array(

// uncomment the following to enable the Gii tool

/*

'gii'=>array(

'class'=>'system.gii.GiiModule',

'password'=>'Enter Your Password Here',

// If removed, Gii defaults to localhost only. Edit carefully to taste.

'ipFilters'=>array('127.0.0.1','::1'),

),

*/

),

// application components

'components'=>array(

'user'=>array(

// enable cookie-based authentication

'allowAutoLogin'=>true,

),

// uncomment the following to enable URLs in path-format

/*

'urlManager'=>array(

'urlFormat'=>'path',

'rules'=>array(

'/'=>'/view',

'//'=>'/',

'/'=>'/',

),

),

*/

// uncomment the following to use a MySQL database

'db'=>array(

'connectionString' => 'mysql:host=localhost;dbname=trackstar',

'emulatePrepare' => true,

'username' => 'user1',

'password' => 'mydb389',

'charset' => 'utf8',

),

'errorHandler'=>array(

// use 'site/error' action to display errors

'errorAction'=>'site/error',

),

'log'=>array(

'class'=>'CLogRouter',

'routes'=>array(

array(

'class'=>'CFileLogRoute',

'levels'=>'error, warning',

),

// uncomment the following to show log messages on web pages

/*

array(

'class'=>'CWebLogRoute',

),

*/

),

),

),

// application-level parameters that can be accessed

// using Yii::app()->params['paramName']

'params'=>array(

// this is used in contact page

'adminEmail'=>'webmaster@example.com',

),

);

----------------------------- config / main.php的结尾-------------- --------

mysql> show tables

-> ;

+-------------------------+

| Tables_in_trackStar |

+-------------------------+

| tbl_migration |

+-------------------------+

1 row in set (0.00 sec)

mysql> desc tbl_migration;

+------------+--------------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+------------+--------------+------+-----+---------+-------+

| version | varchar(255) | NO | PRI | NULL | |

| apply_time | int(11) | YES | | NULL | |

+------------+--------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值