我正在尝试将一个非常基本的应用程序从Laravel 3迁移到Laravel 4.它看起来很容易,但由于某种原因,以下命令无效。
php artisan migrate:install
遵循本教程:http://laravel.com/docs/quick#installation似乎我们不再需要安装工匠了。所以我试着跑步
php artisan migrate
但我总是得到错误
[ErrorException]
未定义的索引:整理
我的database.php:
'fetch' => PDO::FETCH_CLASS,
'default' => 'mysql',
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/production.sqlite',
'prefix' => '',
),
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'wepromoters_db',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
),
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'prefix' => '',
),
),
'redis' => array(
'cluster' => true,
'default' => array(
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
),
),
我的迁移:
public function up()
{
Schema::create('users',function($table){
$table->increments('id');
$table->string('email')->unique();
$table->string('password');
$table->string('type');
$table->timestamps();
});
}
最后,我的Laravel 3应用程序正常运行数据库
发生了什么事?
答案 0 :(得分:3)
根据Laravel论坛上的this thread,数据库配置现在需要collation
参数。
尝试使用它(注意“charset”之后的额外“collation”参数):
'mysql' => array(
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'wepromoters_db',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
答案 1 :(得分:0)
Laravel 4与Laravel 3完全不同,因此使用laravel 4命令来迁移你的表。我不确切知道,但您可以尝试使用此命令:
php artisan make:migration create_users_table(Enter)
因此,我们创建了默认用户表,并且必须创建我们的表:
php artisan make:migration create_YourTableName_table -- create YourTableName
然后,检查您的文件" migration / YourTableName.php"打开它。
现在,您可以在"运行迁移块"。
下编写代码最后,运行此命令以迁移您的表。
php artisan migrate
它会在一段时间内迁移您的表格。