迁移
在 Laravel 中控制数据库是使用迁移。与工匠一起创建迁移:
php artisan make:migration create_first_table --create=first_table
这将生成 CreateFirstTable 类。在 up 方法中,你可以创建列:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateFirstTable extends Migration
{
public function up()
{
Schema::create('first_table', function (Blueprint $table) {
$table->increments('id');
$table->string('first_string_column_name');
$table->integer('secont_integer_column_name');
$table->timestamps();
});
}
public function down()
{
Schema::drop('first_table');
}
}
最后,要运行所有迁移类,你可以运行 artisan 命令:
php artisan migrate
这将在数据库中创建表和列。其他有用的迁移命令是:
php artisan migrate:rollback
- 回滚上次数据库迁移php artisan migrate:reset
- 回滚所有数据库迁移php artisan migrate:refresh
- 重置并重新运行所有迁移php artisan migrate:status
- 显示每次迁移的状态
修改现有表
有时,你需要更改现有的表结构,如 renaming/deleting
列。你可以通过创建新的迁移来完成此任务。并在迁移的 up
方法中完成。
//Renaming Column.
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->renameColumn('email', 'username');
});
}
上面的例子将 users table
的 email column
重命名为 username
。虽然下面的代码从 users
表中删除了一列 username
。
IMPROTANT:要修改列,你需要将 doctrine/dbal
依赖项添加到项目的 composer.json
文件中并运行 composer update
以反映更改。
//Droping Column
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('username');
});
}