Files
monica/database/migrations/2017_07_26_220021_change_contacts_table.php
T
Régis FreydandGitHub 29197090a7 Restructure where models are stored (#1476)
The idea is to clean the repository a little bit by moving models into their respective folders.
2018-06-14 20:49:12 -04:00

73 lines
2.6 KiB
PHP

<?php
use App\Models\Contact\Contact;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class ChangeContactsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('contacts', function ($table) {
$table->boolean('is_significant_other')->after('gender')->default(0);
$table->boolean('is_kid')->after('is_significant_other')->default(0);
$table->dropColumn(
'has_kids', 'number_of_kids', 'nature_of_relationship'
);
});
Schema::table('significant_others', function ($table) {
$table->integer('temp_contact_id');
});
$significantOthers = DB::table('significant_others')->get();
foreach ($significantOthers as $significantOther) {
$contact = new Contact;
$contact->account_id = $significantOther->account_id;
$contact->first_name = $significantOther->first_name;
$contact->gender = $significantOther->gender;
$contact->is_birthdate_approximate = $significantOther->is_birthdate_approximate;
$contact->birthdate = $significantOther->birthdate;
$contact->is_significant_other = 1;
$contact->created_at = $significantOther->created_at;
$contact->updated_at = $significantOther->updated_at;
$contact->save();
DB::table('significant_others')
->where('id', $significantOther->id)
->update(['temp_contact_id' => $contact->id]);
}
Schema::create('relationships', function (Blueprint $table) {
$table->increments('id');
$table->integer('account_id');
$table->integer('contact_id');
$table->integer('with_contact_id');
$table->dateTime('anniversary')->nullable();
$table->boolean('is_active')->default(1);
$table->string('breakup_reason', 1000)->nullable();
$table->timestamps();
});
$significantOthers = DB::table('significant_others')->get();
foreach ($significantOthers as $significantOther) {
DB::table('relationships')->insert([
'account_id' => $significantOther->account_id,
'contact_id' => $significantOther->contact_id,
'with_contact_id' => $significantOther->temp_contact_id,
]);
}
Schema::drop('significant_others');
}
}