30

laravel 4で雄弁または流暢を使用して、データベース内のすべてのテーブルを切り捨てる方法はありますか? テーブル名を指定したくありません。すべてのテーブルを切り捨てたいだけです。つまり、すべてのテーブルを空にします。

4

7 に答える 7

3

laravel 5 では、migrate:fresh はデータベース内のすべてのテーブルを削除します (テーブルが移行に関連していない場合でも)

于 2019-03-06T13:06:23.293 に答える
0

これは、データベース内のすべてのテーブル (テーブルの例外を含む) を切り捨てる方法です。私にとってはうまくいきます。

    // set tables don't want to trucate here
    $excepts = ['migrations'];
    $tables = DB::connection()
    ->getPdo()
    ->query("SHOW FULL TABLES")
    ->fetchAll();
    $tableNames = [];

    $keys = array_keys($tables[0]);
    $keyName = $keys[0];
    $keyType = $keys[1];

    foreach ($tableNames as $name) {
        //if you don't want to truncate migrations
        if (in_array($name[$keyName], $excepts))
            continue;

        // truncate tables only
        if('BASE TABLE' !== $name[$keyType])
            continue;

        \DB::table($name)->truncate();
    }
于 2014-07-21T01:10:48.190 に答える