zoukankan      html  css  js  c++  java
  • Laravel 迁移检查表是否存在

    Schema::hasTable('TableName'); //检查表释放存在
    Schema::hasColumn('tableName', 'columeName'); //检查表是否存在某个字段
    

    eg. alert_test_add_timesteamps_field.php 文件,添加updated_atcreated_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 # 重新生成表和填充数据
    
    References
    1. Is there any way to detect if a database table exists with Laravel
  • 相关阅读:
    bzoj 5455
    hdu 6705
    hdu 6706
    斜率优化
    bzoj3672
    bzoj1367
    bzoj2118
    bzoj2337
    Codeforces 1077D Cutting Out(二分答案)
    Codeforces 1079C Playing Piano(记忆化搜索)
  • 原文地址:https://www.cnblogs.com/fsong/p/11160871.html
Copyright © 2011-2022 走看看