snipe-it/database/migrations/2015_09_22_003413_migrate_mac_address.php
2023-01-23 15:42:33 -08:00

67 lines
2.2 KiB
PHP

<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
class MigrateMacAddress extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
DB::getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
$f2 = new \App\Models\CustomFieldset(['name' => 'Asset with MAC Address']);
$f2->timestamps = false; //when this model was first created, it had no timestamps. But later on it gets them.
if (! $f2->save()) {
throw new Exception("couldn't save customfieldset");
}
$macid = DB::table('custom_fields')->insertGetId([
'name' => 'MAC Address',
'format' => \App\Models\CustomField::PREDEFINED_FORMATS['MAC'],
'element'=>'text', ]);
if (! $macid) {
throw new Exception("Can't save MAC Custom field: $macid");
}
$f2->fields()->attach($macid, ['required' => false, 'order' => 1]);
\App\Models\AssetModel::where(['show_mac_address' => true])->update(['fieldset_id'=>$f2->id]);
Schema::table('assets', function (Blueprint $table) {
$table->renameColumn('mac_address', '_snipeit_mac_address');
});
// DB::statement("ALTER TABLE assets CHANGE mac_address _snipeit_mac_address varchar(255)");
$ans = Schema::table('models', function (Blueprint $table) {
$table->renameColumn('show_mac_address', 'deprecated_mac_address');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
$f = \App\Models\CustomFieldset::where(['name' => 'Asset with MAC Address'])->first();
if ($f) {
$f->fields()->delete();
$f->delete();
}
Schema::table('models', function (Blueprint $table) {
$table->renameColumn('deprecated_mac_address', 'show_mac_address');
});
if (Schema::hasColumn('assets', '_snipeit_mac_address')) {
DB::statement('ALTER TABLE assets CHANGE _snipeit_mac_address mac_address varchar(255)');
}
}
}