function getColumns($table)
{
//获取指定表的所有列
$result = [];
$columns = \DB::connection()->getDoctrineSchemaManager()->listTableColumns($table);
//dd($columns);
foreach ($columns as $item) {
// if($item->type)
//dd($item->getType());
//dd($item->getNotnull());
if (!$item->getNotnull()) {
if ($item->getType() instanceof \Doctrine\DBAL\Types\IntegerType) {
//dd($item);
if ($item->getDefault() == null) {
$result[] = $item->getName();
//$item->setDefault(0);
}
} else if ($item->getType() instanceof \Doctrine\DBAL\Types\DecimalType) {
//dd($item);
if ($item->getDefault() == null) {
$result[] = $item->getName();
// $item->setDefault(0);
}
}
}
}
return $result;
}
Artisan::command('get_sql', function () {
//获取表及列结构
//$tables = DB::connection()->getDoctrineSchemaManager()->listTables();
//获取表名
$table_names = DB::connection()->getDoctrineSchemaManager()->listTableNames();
//dd($table_names);
foreach ($table_names as $key => $value) {
$table_name = $value;
//获取指定表的所有列
$columns = getColumns($value);
echo $value . "\n";
var_dump($columns);
foreach ($columns as $item) {
$sql = sprintf("alter table %s alter column %s set default 0;", $table_name, $item);
\DB::select($sql);
}
}
echo "ok";
})->describe('test data2');
Artisan::command('get_remove_data', function () {
$table_names = DB::connection()->getDoctrineSchemaManager()->listTableNames();
$result = [];
$ingore_tables = [
"ims_xiaozhaocheju_make",
"ims_xiaozhaocheju_model",
"ims_xiaozhaocheju_modelyear",
"ims_xiaozhaocheju_car_color",
"ims_xiaozhaocheju_county",
"ims_xiaozhaocheju_city",
"ims_xiaozhaocheju_province",
];
//dd($table_names);
foreach ($table_names as $key => $value) {
$table_name = $value;
if (!in_array($table_name, $ingore_tables)) {
if ($table_name == "ims_attachment_groups" || $table_name == "ims_attachments" ||
\Illuminate\Support\Str::startsWith($table_name, ["ims_xiaozhaocheju"])) {
$result[] = $table_name;
$sql = sprintf("TRUNCATE TABLE %s;", $table_name);
\DB::select($sql);
$sql = sprintf("alter table %s auto_increment=1;", $table_name);
\DB::select($sql);
}
}
}
dd($result);
});