我正在尝试将一些新列添加到Laravel 5安装附带的通用“用户”表中。
但是,我创建了一个新的迁移,它执行Schema :: create,如下所示:
bool beginbfrange_check = qi::phrase_parse(begin, end, *braced_hex >> *braced_hex1 , qi::space, v_Begin_BF_Range);
在上文中,我添加了Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('username');
$table->string('email')->unique();
$table->string('password', 60);
$table->string('avatar');
$table->string('first_name');
$table->string('last_name');
$table->string('nickname');
$table->rememberToken();
$table->timestamps();
});
,avatar
,first_name
和last_name
列。
我的问题是,当我运行nickname
时,它告诉我php artisan migrate
如何创建“更新”迁移?
答案 0 :(得分:6)
来自http://laravel.com/docs/5.1/migrations#creating-columns
创建列
要更新现有表,我们将在Schema Facade上使用table
方法。与create
方法一样,table
方法接受两个参数:表的名称和接收Blueprint实例的Closure,我们可以使用它来向表中添加列:
Schema::table('users', function ($table) {
$table->string('email');
});
另请参阅http://laravel.com/docs/5.1/migrations#creating-columns
在单个命令中回滚/迁移注意:使用此方法将丢失数据库中的所有数据
migrate:refresh命令将首先回滚所有数据库迁移,然后运行migrate命令。此命令有效地重新创建整个数据库:
php artisan migrate:refresh
答案 1 :(得分:1)
您还可以从迁移表中删除特定迁移的迁移行(通常批量为1的用户迁移)。然后再次运行php artisan migrate。
每次迁移都存储在迁移表中(检查数据库),以便重新创建一个表,您需要在迁移表中删除该表(用户)的迁移记录
答案 2 :(得分:-1)
一般流程:
我已经失去了6个小时来解决你面临的同样问题,但现在它就像吃的食物一样。
第1步:先决条件:
在修改列之前,请务必将doctrine / dbal依赖项添加到composer.json文件中。 Doctrine DBAL库用于确定列的当前状态,并创建对列进行指定调整所需的SQL查询
第2步:创建列:
Schema Facade上的表方法可用于更新现有表。与create方法一样,table方法接受两个参数:表的名称和接收可用于向表中添加列的Blueprint实例的Closure:
Schema::table('users', function (Blueprint $table) {
$table->string('email');
});
第3步(如果需要):
在控制台
中使用以下命令php artisan migrate:refresh