solve migration issue

This commit is contained in:
jayvirsinh_gohil
2021-12-08 12:47:42 +05:30
parent c0c5f42ba1
commit f139912c56
2 changed files with 51 additions and 67 deletions

View File

@ -15,24 +15,24 @@ class CreateBouncerTables extends Migration
*/ */
public function up() public function up()
{ {
if (Schema::hasTable('roles')) { if (Schema::hasTable('role_has_permissions')) {
Schema::drop(Models::table('roles')); Schema::drop(Models::table('role_has_permissions'));
}
if (Schema::hasTable('permissions')) {
Schema::drop(Models::table('permissions'));
}
if (Schema::hasTable('model_has_permissions')) {
Schema::drop(Models::table('model_has_permissions'));
} }
if (Schema::hasTable('model_has_roles')) { if (Schema::hasTable('model_has_roles')) {
Schema::drop(Models::table('model_has_roles')); Schema::drop(Models::table('model_has_roles'));
} }
if (Schema::hasTable('role_has_permissions')) { if (Schema::hasTable('model_has_permissions')) {
Schema::drop(Models::table('role_has_permissions')); Schema::drop(Models::table('model_has_permissions'));
}
if (Schema::hasTable('permissions')) {
Schema::drop(Models::table('permissions'));
}
if (Schema::hasTable('roles')) {
Schema::drop(Models::table('roles'));
} }
Schema::create(Models::table('abilities'), function (Blueprint $table) { Schema::create(Models::table('abilities'), function (Blueprint $table) {

View File

@ -1,7 +1,13 @@
<?php <?php
use Crater\Models\Address;
use Crater\Models\Customer; use Crater\Models\Customer;
use Crater\Models\CustomField; use Crater\Models\CustomField;
use Crater\Models\CustomFieldValue;
use Crater\Models\Estimate;
use Crater\Models\Expense;
use Crater\Models\Invoice;
use Crater\Models\Payment;
use Crater\Models\User; use Crater\Models\User;
use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Schema\Blueprint;
@ -26,68 +32,46 @@ class UpdateCustomerIdInAllTables extends Migration
foreach ($users as $user) { foreach ($users as $user) {
$newCustomer = Customer::create($user->toArray()); $newCustomer = Customer::create($user->toArray());
$customFields = CustomField::where('model_type', 'User')->get(); Address::where('user_id', $user->id)->update([
'customer_id' => $newCustomer->id,
'user_id' => null
]);
if ($customFields) { Expense::where('user_id', $user->id)->update([
$user->fields->map(function ($customFieldValue) use ($newCustomer) { 'customer_id' => $newCustomer->id,
$customFieldValue->custom_field_valuable_type = "Crater\Models\Customer"; 'user_id' => null
$customFieldValue->custom_field_valuable_id = $newCustomer->id; ]);
$customFieldValue->save();
$customField = $customFieldValue->customField; Estimate::where('user_id', $user->id)->update([
$customField->model_type = "Customer"; 'customer_id' => $newCustomer->id,
$customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_')); 'user_id' => null
$customField->save(); ]);
});
}
if ($user->addresses()->exists()) { Invoice::where('user_id', $user->id)->update([
$user->addresses->map(function ($address) use ($newCustomer) { 'customer_id' => $newCustomer->id,
if ($address) { 'user_id' => null
$address->customer_id = $newCustomer->id; ]);
$address->user_id = null;
$address->save();
}
});
}
if ($user->expenses()->exists()) { Payment::where('user_id', $user->id)->update([
$user->expenses->map(function ($expense) use ($newCustomer) { 'customer_id' => $newCustomer->id,
if ($expense) { 'user_id' => null
$expense->customer_id = $newCustomer->id; ]);
$expense->user_id = null;
$expense->save();
}
});
}
if ($user->estimates()->exists()) { CustomFieldValue::where('custom_field_valuable_id', $user->id)
$user->estimates->map(function ($estimate) use ($newCustomer) { ->where('custom_field_valuable_type', 'Crater\Models\User')
if ($estimate) { ->update([
$estimate->customer_id = $newCustomer->id; 'custom_field_valuable_type' => 'Crater\Models\Customer',
$estimate->user_id = null; 'custom_field_valuable_id' => $newCustomer->id
$estimate->save(); ]);
} }
});
}
if ($user->invoices()->exists()) { $customFields = CustomField::where('model_type', 'User')->get();
$user->invoices->map(function ($invoice) use ($newCustomer) {
if ($invoice) {
$invoice->customer_id = $newCustomer->id;
$invoice->user_id = null;
$invoice->save();
}
});
}
if ($user->payments()->exists()) { if ($customFields) {
$user->payments->map(function ($payment) use ($newCustomer) { foreach ($customFields as $customField) {
if ($payment) { $customField->model_type = "Customer";
$payment->customer_id = $newCustomer->id; $customField->slug = Str::upper('CUSTOM_'.$customField->model_type.'_'.Str::slug($customField->label, '_'));
$payment->save(); $customField->save();
}
});
} }
} }
} }