diff --git a/app/database/migrations/2014_06_27_163032_create_users_table.php b/app/database/migrations/2014_06_27_163032_create_users_table.php index 7dce4f47b8..ef3ebbabbe 100644 --- a/app/database/migrations/2014_06_27_163032_create_users_table.php +++ b/app/database/migrations/2014_06_27_163032_create_users_table.php @@ -36,8 +36,6 @@ class CreateUsersTable extends Migration $table->string('password', 60); $table->string('reset', 32)->nullable(); $table->string('remember_token', 255)->nullable(); - $table->boolean('migrated'); - $table->unique('email'); } ); diff --git a/app/database/migrations/2014_06_27_163145_create_account_types_table.php b/app/database/migrations/2014_06_27_163145_create_account_types_table.php index 8a05459eaf..3c81582a50 100644 --- a/app/database/migrations/2014_06_27_163145_create_account_types_table.php +++ b/app/database/migrations/2014_06_27_163145_create_account_types_table.php @@ -32,7 +32,7 @@ class CreateAccountTypesTable extends Migration 'account_types', function (Blueprint $table) { $table->increments('id'); $table->timestamps(); - $table->string('type', 50); + $table->string('type', 30); $table->boolean('editable'); $table->unique('type'); diff --git a/app/database/migrations/2014_06_27_163259_create_accounts_table.php b/app/database/migrations/2014_06_27_163259_create_accounts_table.php index 0af5a60455..8a7251f61f 100644 --- a/app/database/migrations/2014_06_27_163259_create_accounts_table.php +++ b/app/database/migrations/2014_06_27_163259_create_accounts_table.php @@ -44,6 +44,7 @@ class CreateAccountsTable extends Migration // connect accounts to account_types $table->foreign('account_type_id')->references('id')->on('account_types')->onDelete('cascade'); + // for a user, the account name must be unique. $table->unique(['user_id', 'account_type_id', 'name']); } ); diff --git a/app/database/migrations/2014_06_27_163817_create_components_table.php b/app/database/migrations/2014_06_27_163817_create_components_table.php index 210773199d..605ef98205 100644 --- a/app/database/migrations/2014_06_27_163817_create_components_table.php +++ b/app/database/migrations/2014_06_27_163817_create_components_table.php @@ -40,6 +40,7 @@ class CreateComponentsTable extends Migration // connect components to users $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + // for a user, the component type & name must be unique. $table->unique(['user_id', 'class', 'name']); } ); diff --git a/app/database/migrations/2014_06_27_163818_create_piggybanks_table.php b/app/database/migrations/2014_06_27_163818_create_piggybanks_table.php index 25efdcf2ef..0587903fc0 100644 --- a/app/database/migrations/2014_06_27_163818_create_piggybanks_table.php +++ b/app/database/migrations/2014_06_27_163818_create_piggybanks_table.php @@ -48,6 +48,8 @@ class CreatePiggybanksTable extends Migration // connect account to piggybank. $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); + + // for an account, the name must be unique. $table->unique(['account_id', 'name']); } diff --git a/app/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php b/app/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php index be165577cb..8cecacf2e8 100644 --- a/app/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php +++ b/app/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php @@ -34,6 +34,9 @@ class CreateTransactionCurrenciesTable extends Migration $table->timestamps(); $table->softDeletes(); $table->string('code', 3); + + // code must be unique. + $table->unique(['code']); } ); } diff --git a/app/database/migrations/2014_06_27_164512_create_transaction_types_table.php b/app/database/migrations/2014_06_27_164512_create_transaction_types_table.php index 40cf43e973..568704210e 100644 --- a/app/database/migrations/2014_06_27_164512_create_transaction_types_table.php +++ b/app/database/migrations/2014_06_27_164512_create_transaction_types_table.php @@ -34,6 +34,9 @@ class CreateTransactionTypesTable extends Migration $table->timestamps(); $table->softDeletes(); $table->string('type', 50); + + // type must be unique. + $table->unique(['type']); } ); } diff --git a/app/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php b/app/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php index af41979983..e37936f210 100644 --- a/app/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php +++ b/app/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php @@ -44,6 +44,10 @@ class CreateRecurringTransactionsTable extends Migration $table->enum('repeat_freq', ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly']); $table->smallInteger('skip')->unsigned(); + // connect user id to users + $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + + // for a user, the name must be unique $table->unique(['user_id', 'name']); diff --git a/app/database/migrations/2014_06_27_164620_create_transaction_journals_table.php b/app/database/migrations/2014_06_27_164620_create_transaction_journals_table.php index f895bca4d1..7f751797c4 100644 --- a/app/database/migrations/2014_06_27_164620_create_transaction_journals_table.php +++ b/app/database/migrations/2014_06_27_164620_create_transaction_journals_table.php @@ -41,6 +41,9 @@ class CreateTransactionJournalsTable extends Migration $table->boolean('completed'); $table->date('date'); + // connect users + $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + // connect transaction journals to transaction types $table->foreign('transaction_type_id')->references('id')->on('transaction_types')->onDelete('cascade'); @@ -50,8 +53,7 @@ class CreateTransactionJournalsTable extends Migration // connect transaction journals to transaction currencies $table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); - // connect users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + } ); } diff --git a/app/database/migrations/2014_06_27_164836_create_transactions_table.php b/app/database/migrations/2014_06_27_164836_create_transactions_table.php index 917d65e181..38453f93b6 100644 --- a/app/database/migrations/2014_06_27_164836_create_transactions_table.php +++ b/app/database/migrations/2014_06_27_164836_create_transactions_table.php @@ -39,14 +39,18 @@ class CreateTransactionsTable extends Migration $table->string('description', 255)->nullable(); $table->decimal('amount', 10, 2); - // connect transactions to transaction journals - $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); + // connect account id: + $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); // connect piggy banks $table->foreign('piggybank_id')->references('id')->on('piggybanks')->onDelete('set null'); - // connect account id: - $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); + // connect transactions to transaction journals + $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); + + + + } ); diff --git a/app/database/migrations/2014_06_27_165344_create_component_transaction_table.php b/app/database/migrations/2014_06_27_165344_create_component_transaction_table.php index 7cbef507ee..99e1d8649c 100644 --- a/app/database/migrations/2014_06_27_165344_create_component_transaction_table.php +++ b/app/database/migrations/2014_06_27_165344_create_component_transaction_table.php @@ -39,6 +39,9 @@ class CreateComponentTransactionTable extends Migration // connect to transactions $table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade'); + + // combo must be unique: + $table->unique(['component_id', 'transaction_id']); } ); } diff --git a/app/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php b/app/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php index b34fbc1aa2..4474c18ec7 100644 --- a/app/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php +++ b/app/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php @@ -39,6 +39,9 @@ class CreateComponentTransactionJournalTable extends Migration // link transaction journals with transaction_journal_id $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); + + // combo must be unique: + $table->unique(['component_id', 'transaction_journal_id'],'cid_tjid_unique'); } ); } diff --git a/app/database/migrations/2014_07_06_123842_create_preferences_table.php b/app/database/migrations/2014_07_06_123842_create_preferences_table.php index fb74ddd1bc..058c530f2a 100644 --- a/app/database/migrations/2014_07_06_123842_create_preferences_table.php +++ b/app/database/migrations/2014_07_06_123842_create_preferences_table.php @@ -38,6 +38,9 @@ class CreatePreferencesTable extends Migration // connect preferences to users $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); + + // only one preference per name per user + $table->unique(['user_id', 'name']); } ); } diff --git a/app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php b/app/database/migrations/2014_08_06_044416_create_component_recurring_transaction_table.php similarity index 80% rename from app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php rename to app/database/migrations/2014_08_06_044416_create_component_recurring_transaction_table.php index 326228af51..e6f25ed2ec 100644 --- a/app/database/migrations/2014_08_06_044416_recurring_transactions_to_components.php +++ b/app/database/migrations/2014_08_06_044416_create_component_recurring_transaction_table.php @@ -4,11 +4,11 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; /** - * Class RecurringTransactionsToComponents + * Class CreateComponentRecurringTransactionTable * * @SuppressWarnings(PHPMD.ShortMethodName) */ -class RecurringTransactionsToComponents extends Migration +class CreateComponentRecurringTransactionTable extends Migration { /** @@ -40,6 +40,10 @@ class RecurringTransactionsToComponents extends Migration // link transaction journals with transaction_journal_id $table->foreign('recurring_transaction_id')->references('id')->on('recurring_transactions')->onDelete('cascade'); + + // component and recurring transaction must be unique. + $table->unique(['component_id','recurring_transaction_id'],'cid_rtid_unique'); + } ); } diff --git a/app/database/migrations/2014_08_12_173919_create_piggy_instance.php b/app/database/migrations/2014_08_12_173919_create_piggybank_repetitions_table.php similarity index 88% rename from app/database/migrations/2014_08_12_173919_create_piggy_instance.php rename to app/database/migrations/2014_08_12_173919_create_piggybank_repetitions_table.php index 96dbb1ec06..5a8fa36282 100644 --- a/app/database/migrations/2014_08_12_173919_create_piggy_instance.php +++ b/app/database/migrations/2014_08_12_173919_create_piggybank_repetitions_table.php @@ -3,7 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class CreatePiggyInstance extends Migration +/** + * Class CreatePiggyInstance + * + * @SuppressWarnings(PHPMD.ShortMethodName) + */ +class CreatePiggybankRepetitionsTable extends Migration { /** diff --git a/app/database/migrations/2014_08_18_100330_create_piggy_events.php b/app/database/migrations/2014_08_18_100330_create_piggybank_events_table.php similarity index 68% rename from app/database/migrations/2014_08_18_100330_create_piggy_events.php rename to app/database/migrations/2014_08_18_100330_create_piggybank_events_table.php index 6abd680a19..f598185157 100644 --- a/app/database/migrations/2014_08_18_100330_create_piggy_events.php +++ b/app/database/migrations/2014_08_18_100330_create_piggybank_events_table.php @@ -3,7 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class CreatePiggyEvents extends Migration +/** + * Class CreatePiggybankEventsTable + * + * @SuppressWarnings(PHPMD.ShortMethodName) + */ +class CreatePiggybankEventsTable extends Migration { /** @@ -28,11 +33,16 @@ class CreatePiggyEvents extends Migration $table->increments('id'); $table->timestamps(); $table->integer('piggybank_id')->unsigned(); + $table->integer('transaction_journal_id')->unsigned()->nullable(); + $table->date('date'); $table->decimal('amount', 10, 2); // connect instance to piggybank. $table->foreign('piggybank_id')->references('id')->on('piggybanks')->onDelete('cascade'); + + // connect to journal: + $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('set null'); } ); } diff --git a/app/database/migrations/2014_08_23_113221_create_reminders_table.php b/app/database/migrations/2014_08_23_113221_create_reminders_table.php index bf7ac668b4..7a3cbc0997 100644 --- a/app/database/migrations/2014_08_23_113221_create_reminders_table.php +++ b/app/database/migrations/2014_08_23_113221_create_reminders_table.php @@ -3,6 +3,11 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +/** + * Class CreateRemindersTable + * + * @SuppressWarnings(PHPMD.ShortMethodName) + */ class CreateRemindersTable extends Migration { @@ -31,6 +36,9 @@ class CreateRemindersTable extends Migration $table->date('startdate'); $table->date('enddate')->nullable(); $table->boolean('active'); + $table->boolean('notnow')->default(0); + $table->integer('remindersable_id')->unsigned()->nullable(); + $table->string('remindersable_type')->nullable(); // connect reminders to users $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); diff --git a/app/database/migrations/2014_08_31_153322_create_importmaps_table.php b/app/database/migrations/2014_08_31_153322_create_importmaps_table.php deleted file mode 100644 index 5d7eeefcf9..0000000000 --- a/app/database/migrations/2014_08_31_153322_create_importmaps_table.php +++ /dev/null @@ -1,41 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('user_id')->unsigned(); - $table->string('file', 500); - $table->integer('totaljobs')->unsigned(); - $table->integer('jobsdone')->unsigned(); - - // connect maps to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - } - -} diff --git a/app/database/migrations/2014_09_01_052816_create_importentries_table.php b/app/database/migrations/2014_09_01_052816_create_importentries_table.php deleted file mode 100644 index 5003dfc9d5..0000000000 --- a/app/database/migrations/2014_09_01_052816_create_importentries_table.php +++ /dev/null @@ -1,41 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->string('class', 200); - $table->integer('importmap_id')->unsigned(); - $table->integer('old')->unsigned(); - $table->integer('new')->unsigned(); - - // connect import map. - $table->foreign('importmap_id')->references('id')->on('importmaps')->onDelete('cascade'); - } - ); - } - -} diff --git a/app/database/migrations/2014_09_02_103101_create_failed_jobs_table.php b/app/database/migrations/2014_09_02_103101_create_failed_jobs_table.php deleted file mode 100644 index 89cb377e9d..0000000000 --- a/app/database/migrations/2014_09_02_103101_create_failed_jobs_table.php +++ /dev/null @@ -1,37 +0,0 @@ -increments('id'); - $table->text('connection'); - $table->text('queue'); - $table->text('payload'); - $table->timestamp('failed_at'); - } - ); - } - -} diff --git a/app/database/migrations/2014_11_10_172053_create_account_meta.php b/app/database/migrations/2014_11_10_172053_create_account_meta_table.php similarity index 78% rename from app/database/migrations/2014_11_10_172053_create_account_meta.php rename to app/database/migrations/2014_11_10_172053_create_account_meta_table.php index 55281d7748..e465b7a5eb 100644 --- a/app/database/migrations/2014_11_10_172053_create_account_meta.php +++ b/app/database/migrations/2014_11_10_172053_create_account_meta_table.php @@ -3,7 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class CreateAccountMeta extends Migration +/** + * Class CreateAccountMetaTable + * + * @SuppressWarnings(PHPMD.ShortMethodName) + */ +class CreateAccountMetaTable extends Migration { /** @@ -33,6 +38,8 @@ class CreateAccountMeta extends Migration $table->string('name'); $table->text('data'); + $table->unique(['account_id', 'name']); + } ); diff --git a/app/database/migrations/2014_11_15_112449_extend_piggybank_events.php b/app/database/migrations/2014_11_15_112449_extend_piggybank_events.php deleted file mode 100644 index 8b5880c958..0000000000 --- a/app/database/migrations/2014_11_15_112449_extend_piggybank_events.php +++ /dev/null @@ -1,34 +0,0 @@ -integer('transaction_journal_id')->unsigned()->nullable(); - $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('set null'); - } - ); - } - -} diff --git a/app/database/migrations/2014_11_17_194734_event_table_additions_1.php b/app/database/migrations/2014_11_17_194734_event_table_additions_1.php deleted file mode 100644 index 6ccfb73235..0000000000 --- a/app/database/migrations/2014_11_17_194734_event_table_additions_1.php +++ /dev/null @@ -1,36 +0,0 @@ -boolean('notnow')->default(0); - $table->integer('remindersable_id')->unsigned()->nullable(); - $table->string('remindersable_type')->nullable(); - } - ); - } - -} diff --git a/app/database/migrations/2014_11_25_204833_cacheTable.php b/app/database/migrations/2014_11_25_204833_cacheTable.php deleted file mode 100644 index 2ffbce905d..0000000000 --- a/app/database/migrations/2014_11_25_204833_cacheTable.php +++ /dev/null @@ -1,34 +0,0 @@ -string('key')->unique(); - $table->text('value'); - $table->integer('expiration'); - } - ); - } - -} diff --git a/app/database/migrations/2014_11_29_135749_transactiongroups.php b/app/database/migrations/2014_11_29_135749_create_transaction_groups_table.php similarity index 85% rename from app/database/migrations/2014_11_29_135749_transactiongroups.php rename to app/database/migrations/2014_11_29_135749_create_transaction_groups_table.php index 09fecd7feb..31dca7cda5 100644 --- a/app/database/migrations/2014_11_29_135749_transactiongroups.php +++ b/app/database/migrations/2014_11_29_135749_create_transaction_groups_table.php @@ -3,7 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class Transactiongroups extends Migration +/** + * Class CreateTransactionGroupsTable + * + * @SuppressWarnings(PHPMD.ShortMethodName) + */ +class CreateTransactionGroupsTable extends Migration { /** diff --git a/app/database/migrations/2014_11_29_140217_transactiongroupsjoin.php b/app/database/migrations/2014_11_29_140217_create_transaction_group_transaction_journal_table.php similarity index 81% rename from app/database/migrations/2014_11_29_140217_transactiongroupsjoin.php rename to app/database/migrations/2014_11_29_140217_create_transaction_group_transaction_journal_table.php index ca3c9c1c6d..7a275b68d6 100644 --- a/app/database/migrations/2014_11_29_140217_transactiongroupsjoin.php +++ b/app/database/migrations/2014_11_29_140217_create_transaction_group_transaction_journal_table.php @@ -3,7 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; -class Transactiongroupsjoin extends Migration +/** + * Class CreateTransactionGroupTransactionJournalTable + * + * @SuppressWarnings(PHPMD.ShortMethodName) + */ +class CreateTransactionGroupTransactionJournalTable extends Migration { /** @@ -31,9 +36,11 @@ class Transactiongroupsjoin extends Migration $table->integer('transaction_group_id')->unsigned(); $table->integer('transaction_journal_id')->unsigned(); + // link to foreign tables. $table->foreign('transaction_group_id', 'tr_grp_id')->references('id')->on('transaction_groups')->onDelete('cascade'); $table->foreign('transaction_journal_id', 'tr_trj_id')->references('id')->on('transaction_journals')->onDelete('cascade'); + // add unique. $table->unique(['transaction_group_id', 'transaction_journal_id'], 'tt_joined'); } );