Schema::hasTable('TableName'); //检查表释放存在
Schema::hasColumn('tableName', 'columeName'); //检查表是否存在某个字段
eg. alert_test_add_timesteamps_field.php
文件,添加updated_at
和created_at
2个字段
<?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSchemaBlueprint;
use IlluminateDatabaseMigrationsMigration;
class AlertTestAddTimesteampsField extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('test', function (Blueprint $table) {
if (!Schema::hasColumn('test', 'updated_at')) {
$table->timestamp('updated_at')->nullable();
}
if (!Schema::hasColumn('test', 'created_at')) {
$table->timestamp('created_at')->nullable();
}
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('test', function (Blueprint $table) {
if (Schema::hasColumn('test', 'updated_at')) {
$table->dropColumn('updated_at');
}
if (Schema::hasColumn('test', 'created_at')) {
$table->dropColumn('created_at');
}
});
}
}
迁移的常用命令(前提:已cd
到项目的根目录下)
php artisan make:migration create_tablename_tables --create=tableName #创建新表时使用
php artisan make:migration alert_tablename_coumn_field --table=tableName #修改表中的字段时使用
php artisan migrate # 执行迁移
php artisan migrate --seed # 执行迁移及生成测试数据
php artisan migrate:rollabck # 回滚上一步迁移
php artisan migrate:refersh # 重新执行迁移
php artisan migrate:refresh --seed # 重新生成表和填充数据