diff --git a/database/migrations/2014_06_27_163032_create_users_table.php b/database/migrations/2014_06_27_163032_create_users_table.php deleted file mode 100644 index 57f44c51cd..0000000000 --- a/database/migrations/2014_06_27_163032_create_users_table.php +++ /dev/null @@ -1,46 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->string('email', 100)->unique(); - $table->string('password', 60); - $table->rememberToken(); - $table->string('reset', 32)->nullable(); - } - ); - } - -} diff --git a/database/migrations/2014_06_27_163145_create_account_types_table.php b/database/migrations/2014_06_27_163145_create_account_types_table.php deleted file mode 100644 index 85b0742038..0000000000 --- a/database/migrations/2014_06_27_163145_create_account_types_table.php +++ /dev/null @@ -1,47 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->string('type', 30); - $table->boolean('editable'); - - $table->unique('type'); - } - ); - } - -} diff --git a/database/migrations/2014_06_27_163259_create_accounts_table.php b/database/migrations/2014_06_27_163259_create_accounts_table.php deleted file mode 100644 index 972bf66fcb..0000000000 --- a/database/migrations/2014_06_27_163259_create_accounts_table.php +++ /dev/null @@ -1,57 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('user_id')->unsigned(); - $table->integer('account_type_id')->unsigned(); - $table->string('name', 100); - $table->boolean('active'); - - // connect accounts to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - - // 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/database/migrations/2014_06_27_163817_create_components_table.php b/database/migrations/2014_06_27_163817_create_components_table.php deleted file mode 100644 index 795f14685f..0000000000 --- a/database/migrations/2014_06_27_163817_create_components_table.php +++ /dev/null @@ -1,54 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->string('name', 50); - $table->integer('user_id')->unsigned(); - $table->string('class', 20); - - // 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/database/migrations/2014_06_27_163818_create_piggybanks_table.php b/database/migrations/2014_06_27_163818_create_piggybanks_table.php deleted file mode 100644 index cffda131c9..0000000000 --- a/database/migrations/2014_06_27_163818_create_piggybanks_table.php +++ /dev/null @@ -1,63 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('account_id')->unsigned(); - $table->string('name', 100); - $table->decimal('targetamount', 10, 2); - $table->date('startdate')->nullable(); - $table->date('targetdate')->nullable(); - $table->boolean('repeats'); - $table->enum('rep_length', ['day', 'week', 'quarter', 'month', 'year'])->nullable(); - $table->smallInteger('rep_every')->unsigned(); - $table->smallInteger('rep_times')->unsigned()->nullable(); - $table->enum('reminder', ['day', 'week', 'quarter', 'month', 'year'])->nullable(); - $table->smallInteger('reminder_skip')->unsigned(); - $table->boolean('remind_me'); - $table->integer('order')->unsigned(); - - // connect account to piggy bank. - $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/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php b/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php deleted file mode 100644 index 4c0f9b7ef0..0000000000 --- a/database/migrations/2014_06_27_164042_create_transaction_currencies_table.php +++ /dev/null @@ -1,48 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->string('code', 3); - - // code must be unique. - $table->unique(['code']); - } - ); - } - -} diff --git a/database/migrations/2014_06_27_164512_create_transaction_types_table.php b/database/migrations/2014_06_27_164512_create_transaction_types_table.php deleted file mode 100644 index 46d82089c0..0000000000 --- a/database/migrations/2014_06_27_164512_create_transaction_types_table.php +++ /dev/null @@ -1,48 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->string('type', 50); - - // type must be unique. - $table->unique(['type']); - } - ); - } - -} diff --git a/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php b/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php deleted file mode 100644 index 1b6e637279..0000000000 --- a/database/migrations/2014_06_27_164619_create_recurring_transactions_table.php +++ /dev/null @@ -1,62 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('user_id')->unsigned(); - $table->string('name', 50); - $table->string('match', 255); - $table->decimal('amount_min', 10, 2); - $table->decimal('amount_max', 10, 2); - $table->date('date'); - $table->boolean('active'); - - $table->boolean('automatch'); - $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/database/migrations/2014_06_27_164620_create_transaction_journals_table.php b/database/migrations/2014_06_27_164620_create_transaction_journals_table.php deleted file mode 100644 index fdb56228b1..0000000000 --- a/database/migrations/2014_06_27_164620_create_transaction_journals_table.php +++ /dev/null @@ -1,65 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('user_id')->unsigned(); - $table->integer('transaction_type_id')->unsigned(); - $table->integer('recurring_transaction_id')->unsigned()->nullable(); - $table->integer('transaction_currency_id')->unsigned(); - $table->string('description', 255)->nullable(); - $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'); - - // connect transaction journals to recurring transactions - $table->foreign('recurring_transaction_id')->references('id')->on('recurring_transactions')->onDelete('set null'); - - // connect transaction journals to transaction currencies - $table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); - - - } - ); - } - -} diff --git a/database/migrations/2014_06_27_164836_create_transactions_table.php b/database/migrations/2014_06_27_164836_create_transactions_table.php deleted file mode 100644 index 0ce8e2adab..0000000000 --- a/database/migrations/2014_06_27_164836_create_transactions_table.php +++ /dev/null @@ -1,60 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('account_id')->unsigned(); - $table->integer('piggybank_id')->nullable()->unsigned(); - $table->integer('transaction_journal_id')->unsigned(); - $table->string('description', 255)->nullable(); - $table->decimal('amount', 10, 2); - - // 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 transactions to transaction journals - $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); - - - } - ); - } - -} diff --git a/database/migrations/2014_06_27_165344_create_component_transaction_table.php b/database/migrations/2014_06_27_165344_create_component_transaction_table.php deleted file mode 100644 index 8d76199427..0000000000 --- a/database/migrations/2014_06_27_165344_create_component_transaction_table.php +++ /dev/null @@ -1,53 +0,0 @@ -increments('id'); - $table->integer('component_id')->unsigned(); - $table->integer('transaction_id')->unsigned(); - - // connect to components - $table->foreign('component_id')->references('id')->on('components')->onDelete('cascade'); - - // 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/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php b/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php deleted file mode 100644 index 06b2a89b4a..0000000000 --- a/database/migrations/2014_07_05_171326_create_component_transaction_journal_table.php +++ /dev/null @@ -1,52 +0,0 @@ -increments('id'); - $table->integer('component_id')->unsigned(); - $table->integer('transaction_journal_id')->unsigned(); - - // link components with component_id - $table->foreign('component_id')->references('id')->on('components')->onDelete('cascade'); - - // 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/database/migrations/2014_07_06_123842_create_preferences_table.php b/database/migrations/2014_07_06_123842_create_preferences_table.php deleted file mode 100644 index a71f0205a4..0000000000 --- a/database/migrations/2014_07_06_123842_create_preferences_table.php +++ /dev/null @@ -1,52 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('user_id')->unsigned(); - $table->string('name'); - $table->text('data'); - - // 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/database/migrations/2014_07_09_204843_create_session_table.php b/database/migrations/2014_07_09_204843_create_session_table.php deleted file mode 100644 index 08a9a98f75..0000000000 --- a/database/migrations/2014_07_09_204843_create_session_table.php +++ /dev/null @@ -1,47 +0,0 @@ -string('id')->unique(); - $table->integer('user_id')->nullable(); - $table->string('ip_address', 45)->nullable(); - $table->text('user_agent')->nullable(); - $table->text('payload'); - $table->integer('last_activity'); - } - ); - } - -} diff --git a/database/migrations/2014_07_17_183717_create_limits_table.php b/database/migrations/2014_07_17_183717_create_limits_table.php deleted file mode 100644 index d94065e832..0000000000 --- a/database/migrations/2014_07_17_183717_create_limits_table.php +++ /dev/null @@ -1,54 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('component_id')->unsigned(); - $table->date('startdate'); - $table->decimal('amount', 10, 2); - $table->boolean('repeats'); - $table->enum('repeat_freq', ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly']); - - $table->unique(['component_id', 'startdate', 'repeat_freq'], 'unique_ci_combi'); - - // connect component - $table->foreign('component_id')->references('id')->on('components')->onDelete('cascade'); - } - ); - } - -} diff --git a/database/migrations/2014_07_19_055011_create_limit_repeat_table.php b/database/migrations/2014_07_19_055011_create_limit_repeat_table.php deleted file mode 100644 index 83a655c5a0..0000000000 --- a/database/migrations/2014_07_19_055011_create_limit_repeat_table.php +++ /dev/null @@ -1,52 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('limit_id')->unsigned(); - $table->date('startdate'); - $table->date('enddate'); - $table->decimal('amount', 10, 2); - - $table->unique(['limit_id', 'startdate', 'enddate']); - - // connect limit - $table->foreign('limit_id')->references('id')->on('limits')->onDelete('cascade'); - } - ); - } - -} diff --git a/database/migrations/2014_08_06_044416_create_component_recurring_transaction_table.php b/database/migrations/2014_08_06_044416_create_component_recurring_transaction_table.php deleted file mode 100644 index 21d0b8b6c3..0000000000 --- a/database/migrations/2014_08_06_044416_create_component_recurring_transaction_table.php +++ /dev/null @@ -1,55 +0,0 @@ -increments('id'); - $table->integer('component_id')->unsigned(); - $table->integer('recurring_transaction_id')->unsigned(); - $table->boolean('optional'); - - // link components with component_id - $table->foreign('component_id')->references('id')->on('components')->onDelete('cascade'); - - // 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/database/migrations/2014_08_12_173919_create_piggybank_repetitions_table.php b/database/migrations/2014_08_12_173919_create_piggybank_repetitions_table.php deleted file mode 100644 index e8dfda76b6..0000000000 --- a/database/migrations/2014_08_12_173919_create_piggybank_repetitions_table.php +++ /dev/null @@ -1,52 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('piggybank_id')->unsigned(); - $table->date('startdate')->nullable(); - $table->date('targetdate')->nullable(); - $table->decimal('currentamount', 10, 2); - - $table->unique(['piggybank_id', 'startdate', 'targetdate']); - - // connect instance to piggybank. - $table->foreign('piggybank_id')->references('id')->on('piggybanks')->onDelete('cascade'); - } - ); - } - -} diff --git a/database/migrations/2014_08_18_100330_create_piggybank_events_table.php b/database/migrations/2014_08_18_100330_create_piggybank_events_table.php deleted file mode 100644 index 54f57e90aa..0000000000 --- a/database/migrations/2014_08_18_100330_create_piggybank_events_table.php +++ /dev/null @@ -1,54 +0,0 @@ -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/database/migrations/2014_08_23_113221_create_reminders_table.php b/database/migrations/2014_08_23_113221_create_reminders_table.php deleted file mode 100644 index a7d769a2fc..0000000000 --- a/database/migrations/2014_08_23_113221_create_reminders_table.php +++ /dev/null @@ -1,53 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('user_id')->unsigned(); - $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/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php deleted file mode 100644 index c9da2ac1cc..0000000000 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ /dev/null @@ -1,42 +0,0 @@ -string('email')->index(); - $table->string('token')->index(); - $table->timestamp('created_at'); - } - ); - } - -} diff --git a/database/migrations/2014_11_10_172053_create_account_meta_table.php b/database/migrations/2014_11_10_172053_create_account_meta_table.php deleted file mode 100644 index 044d1e28e6..0000000000 --- a/database/migrations/2014_11_10_172053_create_account_meta_table.php +++ /dev/null @@ -1,53 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->integer('account_id')->unsigned(); - $table->string('name'); - $table->text('data'); - - $table->unique(['account_id', 'name']); - - // link to account! - $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); - - - } - ); - } - -} diff --git a/database/migrations/2014_11_29_135749_create_transaction_groups_table.php b/database/migrations/2014_11_29_135749_create_transaction_groups_table.php deleted file mode 100644 index a312a3d7d9..0000000000 --- a/database/migrations/2014_11_29_135749_create_transaction_groups_table.php +++ /dev/null @@ -1,50 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('user_id')->unsigned(); - $table->enum('relation', ['balance']); - - // connect groups to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - - - } - -} diff --git a/database/migrations/2014_11_29_140217_create_transaction_group_transaction_journal_table.php b/database/migrations/2014_11_29_140217_create_transaction_group_transaction_journal_table.php deleted file mode 100644 index b615d7b102..0000000000 --- a/database/migrations/2014_11_29_140217_create_transaction_group_transaction_journal_table.php +++ /dev/null @@ -1,51 +0,0 @@ -increments('id'); - $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'); - } - ); - } - -} diff --git a/database/migrations/2014_12_13_190730_changes_for_v321.php b/database/migrations/2014_12_13_190730_changes_for_v321.php deleted file mode 100644 index 13b4715fcc..0000000000 --- a/database/migrations/2014_12_13_190730_changes_for_v321.php +++ /dev/null @@ -1,502 +0,0 @@ -moveBudgetsBack(); // 1. - $this->moveCategoriesBack(); // 2. - $this->createComponentId(); // 3. - $this->updateComponentInBudgetLimits(); // 4. - $this->createComponentIdForeignKey(); // 5. - $this->dropBudgetIdColumnInBudgetLimits(); // 6. - $createComponents = new CreateComponentTransactionJournalTable; // 7. - $createComponents->up(); - $this->moveBackEntriesForBudgetsInJoinedTable(); // 8. - $this->moveBackEntriesForCategoriesInJoinedTable(); // 9. - $this->dropBudgetJournalTable(); // 10. - $this->dropCategoryJournalTable(); // 11. - $this->dropBudgetTable(); // 12. - $this->dropCategoryTable(); // 13. - $this->renameBudgetLimits(); // 14. - $this->renamePiggyBankEvents(); // 15. - $this->renameBudgetLimitToBudgetInRepetitions(); // 16. - // 17 and then 18 and then 19 - $this->dropFieldsFromCurrencyTable(); // 20. - - - } - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - $this->createBudgetTable(); // 1. - $this->createCategoryTable(); // 2. - $this->createBudgetJournalTable(); // 3 - $this->createCategoryJournalTable(); // 4. - $this->moveBudgets(); // 5. - $this->moveCategories(); // 6. - $this->correctNameForBudgetLimits(); // 7. - $this->correctNameForPiggyBankEvents(); // 8. - $this->renameBudgetToBudgetLimitInRepetitions(); // 9. - $this->addBudgetIdFieldToBudgetLimits(); // 10. - $this->moveComponentIdToBudgetId(); // 11. - $this->dropComponentJournalTable(); // 12. - $this->dropComponentRecurringTransactionTable(); // 13. - $this->dropComponentTransactionTable(); // 14. - $this->dropPiggyBankIdFromTransactions(); // 15. - $this->dropComponentIdFromBudgetLimits(); // 16. - $this->expandCurrencyTable(); // 17. - - } - - private function addBudgetIdFieldToBudgetLimits() - { - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->integer('budget_id', false, true)->nullable()->after('updated_at'); - $table->foreign('budget_id', 'bid_foreign')->references('id')->on('budgets')->onDelete('cascade'); - } - ); - } - - private function correctNameForBudgetLimits() - { - Schema::rename('limits', 'budget_limits'); - } - - private function correctNameForPiggyBankEvents() - { - Schema::rename('piggybank_events', 'piggy_bank_events'); - - } - - private function createBudgetJournalTable() - { - Schema::create( - 'budget_transaction_journal', function (Blueprint $table) { - $table->increments('id'); - $table->integer('budget_id')->unsigned(); - $table->integer('transaction_journal_id')->unsigned(); - $table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade'); - $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); - $table->unique(['budget_id', 'transaction_journal_id'], 'budid_tjid_unique'); - } - ); - } - - private function createBudgetTable() - { - Schema::create( - 'budgets', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->string('name', 50); - $table->integer('user_id')->unsigned(); - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - $table->unique(['user_id', 'name']); - } - ); - - - } - - private function createCategoryJournalTable() - { - Schema::create( - 'category_transaction_journal', function (Blueprint $table) { - $table->increments('id'); - $table->integer('category_id')->unsigned(); - $table->integer('transaction_journal_id')->unsigned(); - $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); - $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); - $table->unique(['category_id', 'transaction_journal_id'], 'catid_tjid_unique'); - } - ); - } - - private function createCategoryTable() - { - Schema::create( - 'categories', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->string('name', 50); - $table->integer('user_id')->unsigned(); - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - $table->unique(['user_id', 'name']); - } - ); - } - - private function createComponentId() - { - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->integer('component_id')->unsigned(); - } - ); - } - - private function createComponentIdForeignKey() - { - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->foreign('component_id', 'limits_component_id_foreign')->references('id')->on('components')->onDelete('cascade'); - } - ); - } - - private function dropBudgetIdColumnInBudgetLimits() - { - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropForeign('bid_foreign'); - $table->dropColumn('budget_id'); // also drop foreign key! - } - ); - } - - private function dropBudgetJournalTable() - { - Schema::dropIfExists('budget_transaction_journal'); - } - - private function dropBudgetTable() - { - Schema::dropIfExists('budgets'); - } - - private function dropCategoryJournalTable() - { - Schema::dropIfExists('category_transaction_journal'); - } - - private function dropCategoryTable() - { - Schema::dropIfExists('categories'); - } - - private function dropComponentIdFromBudgetLimits() - { - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropForeign('limits_component_id_foreign'); - $table->dropColumn('component_id'); - } - ); - } - - private function dropComponentJournalTable() - { - Schema::dropIfExists('component_transaction_journal'); - } - - private function dropComponentRecurringTransactionTable() - { - Schema::dropIfExists('component_recurring_transaction'); - } - - private function dropComponentTransactionTable() - { - Schema::dropIfExists('component_transaction'); - } - - private function dropFieldsFromCurrencyTable() - { - - Schema::table( - 'transaction_currencies', function (Blueprint $table) { - $table->dropColumn('symbol'); - $table->dropColumn('name'); - } - ); - } - - private function dropPiggyBankIdFromTransactions() - { - - Schema::table( - 'transactions', function (Blueprint $table) { - if (Schema::hasColumn('transactions', 'piggybank_id')) { - $table->dropForeign('transactions_piggybank_id_foreign'); - $table->dropColumn('piggybank_id'); - } - } - ); - } - - private function expandCurrencyTable() - { - Schema::table( - 'transaction_currencies', function (Blueprint $table) { - $table->string('name', 48)->nullable(); - $table->string('symbol', 8)->nullable(); - } - ); - \DB::update('UPDATE `transaction_currencies` SET `symbol` = "€", `name` = "Euro" WHERE `code` = "EUR";'); - } - - private function moveBackEntriesForBudgetsInJoinedTable() - { - $set = DB::table('budget_transaction_journal')->get(); - /** @var \stdClass $entry */ - foreach ($set as $entry) { - $budget = Budget::find($entry->budget_id); - if ($budget) { - /** @var \FireflyIII\Models\Component $component */ - $component = Component::where('class', 'Budget')->where('name', $budget->name)->where('user_id', $budget->user_id)->first(); - if ($component) { - DB::table('component_transaction_journal')->insert( - [ - 'component_id' => $component->id, - 'transaction_journal_id' => $entry->transaction_journal_id, - ] - ); - } - - } - } - - } - - private function moveBackEntriesForCategoriesInJoinedTable() - { - $set = DB::table('category_transaction_journal')->get(); - /** @var \stdClass $entry */ - foreach ($set as $entry) { - $category = Category::find($entry->category_id); - if ($category) { - /** @var \FireflyIII\Models\Component $component */ - $component = Component::where('class', 'Category')->where('name', $category->name)->where('user_id', $category->user_id)->first(); - if ($component) { - DB::table('component_transaction_journal')->insert( - [ - 'component_id' => $component->id, - 'transaction_journal_id' => $entry->transaction_journal_id, - ] - ); - } - - } - } - - } - - private function moveBudgets() - { - Component::where('class', 'Budget')->get()->each( - function (Component $c) { - $entry = [ - 'user_id' => $c->user_id, - 'name' => $c->name, - - ]; - $budget = Budget::firstOrCreate($entry); - // create entry in budget_transaction_journal - $connections = DB::table('component_transaction_journal')->where('component_id', $c->id)->get(); - /** @var \stdClass $connection */ - foreach ($connections as $connection) { - DB::table('budget_transaction_journal')->insert( - [ - 'budget_id' => $budget->id, - 'transaction_journal_id' => $connection->transaction_journal_id, - ] - ); - } - } - ); - } - - private function moveBudgetsBack() - { - Budget::get()->each( - function (Budget $budget) { - Component::firstOrCreate( - [ - 'name' => $budget->name, - 'user_id' => $budget->user_id, - 'class' => 'Budget', - ] - ); - } - ); - } - - private function moveCategories() - { - Component::where('class', 'Category')->get()->each( - function (Component $c) { - $entry = [ - 'user_id' => $c->user_id, - 'name' => $c->name, - - ]; - $category = Category::firstOrCreate($entry); - // create entry in category_transaction_journal - $connections = DB::table('component_transaction_journal')->where('component_id', $c->id)->get(); - /** @var \stdClass $connection */ - foreach ($connections as $connection) { - DB::table('category_transaction_journal')->insert( - [ - 'category_id' => $category->id, - 'transaction_journal_id' => $connection->transaction_journal_id, - ] - ); - } - } - ); - } - - private function moveCategoriesBack() - { - Category::get()->each( - function (Category $category) { - Component::firstOrCreate( - [ - 'name' => $category->name, - 'user_id' => $category->user_id, - 'class' => 'Category', - ] - ); - } - ); - } - - private function moveComponentIdToBudgetId() - { - BudgetLimit::get()->each( - function (BudgetLimit $bl) { - $component = Component::find($bl->component_id); - if ($component) { - $budget = Budget::whereName($component->name)->whereUserId($component->user_id)->first(); - if ($budget) { - $bl->budget_id = $budget->id; - $bl->save(); - } - } - } - ); - - } - - private function renameBudgetLimitToBudgetInRepetitions() - { - Schema::table( - 'limit_repetitions', function (Blueprint $table) { - $table->dropForeign('limit_repetitions_budget_limit_id_foreign'); - $table->renameColumn('budget_limit_id', 'limit_id'); - $table->foreign('limit_id')->references('id')->on('limits')->onDelete('cascade'); - } - ); - } - - private function renameBudgetLimits() - { - Schema::rename('budget_limits', 'limits'); - } - - private function renameBudgetToBudgetLimitInRepetitions() - { - Schema::table( - 'limit_repetitions', function (Blueprint $table) { - $table->dropForeign('limit_repetitions_limit_id_foreign'); - $table->renameColumn('limit_id', 'budget_limit_id'); - $table->foreign('budget_limit_id')->references('id')->on('budget_limits')->onDelete('cascade'); - } - ); - } - - private function renamePiggyBankEvents() - { - Schema::rename('piggy_bank_events', 'piggybank_events'); - - } - - private function updateComponentInBudgetLimits() - { - BudgetLimit::get()->each( - function (BudgetLimit $bl) { - $budgetId = $bl->budget_id; - $budget = Budget::find($budgetId); - if ($budget) { - $component = Component::where('class', 'Budget')->where('user_id', $budget->user_id)->where('name', $budget->name)->first(); - if ($component) { - $bl->component_id = $component->id; - $bl->save(); - } - } - } - ); - } - - -} diff --git a/database/migrations/2014_12_24_191544_changes_for_v322.php b/database/migrations/2014_12_24_191544_changes_for_v322.php deleted file mode 100644 index 5cd658dc5c..0000000000 --- a/database/migrations/2014_12_24_191544_changes_for_v322.php +++ /dev/null @@ -1,182 +0,0 @@ -dropForeign('piggy_bank_events_piggy_bank_id_foreign'); - $table->renameColumn('piggy_bank_id', 'piggybank_id'); - $table->foreign('piggybank_id')->references('id')->on('piggybanks')->onDelete('cascade'); - } - ); - - Schema::table( - 'piggybank_repetitions', function (Blueprint $table) { - $table->dropForeign('piggy_bank_repetitions_piggy_bank_id_foreign'); - $table->renameColumn('piggy_bank_id', 'piggybank_id'); - $table->foreign('piggybank_id')->references('id')->on('piggybanks')->onDelete('cascade'); - } - ); - - // remove soft delete to piggy banks - Schema::table( - 'piggybanks', function (Blueprint $table) { - $table->dropSoftDeletes(); - } - ); - - // drop keys from bills (foreign bills_uid_for and unique uid_name_unique) - Schema::table( - 'bills', function (Blueprint $table) { - $table->dropForeign('bills_uid_for'); - $table->dropUnique('uid_name_unique'); - } - ); - // drop foreign key from transaction_journals (bill_id_foreign) - Schema::table( - 'transaction_journals', function (Blueprint $table) { - $table->dropForeign('bill_id_foreign'); - - } - ); - - // drop unique constraint from budget_limits: - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropForeign('bid_foreign'); - $table->dropUnique('unique_bl_combi'); - $table->foreign('budget_id', 'bid_foreign')->references('id')->on('budgets')->onDelete('cascade'); - } - ); - - // rename bills to recurring_transactions - Schema::rename('bills', 'recurring_transactions'); - // recreate foreign key recurring_transactions_user_id_foreign in recurring_transactions - // recreate unique recurring_transactions_user_id_name_unique in recurring_transactions - Schema::table( - 'recurring_transactions', function (Blueprint $table) { - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - $table->unique(['user_id', 'name']); - } - ); - - // rename bill_id to recurring_transaction_id - // recreate foreign transaction_journals_recurring_transaction_id_foreign in transaction_journals - Schema::table( - 'transaction_journals', function (Blueprint $table) { - $table->renameColumn('bill_id', 'recurring_transaction_id'); - $table->foreign('recurring_transaction_id')->references('id')->on('recurring_transactions')->onDelete('set null'); - } - ); - - - } - - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - // rename tables: - Schema::rename('piggybank_repetitions', 'piggy_bank_repetitions'); - Schema::rename('piggybanks', 'piggy_banks'); - - // recreate it the correct way: - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->unique(['budget_id', 'startdate', 'repeat_freq'], 'unique_bl_combi'); - } - ); - - // rename fields - Schema::table( - 'piggy_bank_events', function (Blueprint $table) { - $table->dropForeign('piggybank_events_piggybank_id_foreign'); - $table->renameColumn('piggybank_id', 'piggy_bank_id'); - $table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade'); - } - ); - - Schema::table( - 'piggy_bank_repetitions', function (Blueprint $table) { - $table->dropForeign('piggybank_repetitions_piggybank_id_foreign'); - $table->renameColumn('piggybank_id', 'piggy_bank_id'); - $table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade'); - } - ); - - // add soft delete to piggy banks - Schema::table( - 'piggy_banks', function (Blueprint $table) { - $table->softDeletes(); - } - ); - - // rename everything related to recurring transactions, aka bills: - Schema::table( - 'transaction_journals', function (Blueprint $table) { - - - // drop relation - $table->dropForeign('transaction_journals_recurring_transaction_id_foreign'); - // rename column - $table->renameColumn('recurring_transaction_id', 'bill_id'); - - } - ); - - Schema::table( - 'recurring_transactions', function (Blueprint $table) { - $table->dropForeign('recurring_transactions_user_id_foreign'); - $table->dropUnique('recurring_transactions_user_id_name_unique'); - } - ); - // rename table: - Schema::rename('recurring_transactions', 'bills'); - - // recreate foreign relation: - Schema::table( - 'transaction_journals', function (Blueprint $table) { - $table->foreign('bill_id', 'bill_id_foreign')->references('id')->on('bills')->onDelete('set null'); - } - ); - - // recreate more foreign relations. - Schema::table( - 'bills', function (Blueprint $table) { - // connect user id to users - $table->foreign('user_id', 'bills_uid_for')->references('id')->on('users')->onDelete('cascade'); - - // for a user, the name must be unique - $table->unique(['user_id', 'name'], 'uid_name_unique'); - } - ); - - - } - -} diff --git a/database/migrations/2015_01_18_082406_changes_for_v325.php b/database/migrations/2015_01_18_082406_changes_for_v325.php deleted file mode 100644 index b232103ca9..0000000000 --- a/database/migrations/2015_01_18_082406_changes_for_v325.php +++ /dev/null @@ -1,60 +0,0 @@ -dropUnique('unique_ci_combi'); - - } - ); - } catch (PDOException $e) { - // don't care. - } - - // allow journal descriptions to be encrypted. - Schema::table( - 'transaction_journals', function (Blueprint $table) { - $table->boolean('encrypted')->default(0); - - } - ); - try { - DB::update('ALTER TABLE `transaction_journals` MODIFY `description` VARCHAR(1024)'); - } catch (PDOException $e) { - // don't care. - } - - } - -} diff --git a/database/migrations/2015_02_27_210653_changes_for_v332.php b/database/migrations/2015_02_27_210653_changes_for_v332.php deleted file mode 100644 index 982bd02d42..0000000000 --- a/database/migrations/2015_02_27_210653_changes_for_v332.php +++ /dev/null @@ -1,50 +0,0 @@ -boolean('encrypted')->default(0); - - } - ); - - Schema::table( - 'reminders', function (Blueprint $table) { - $table->text('metadata')->nullable(); - - } - ); - - - } - -} diff --git a/database/migrations/2015_03_27_061038_changes_for_v333.php b/database/migrations/2015_03_27_061038_changes_for_v333.php deleted file mode 100644 index 3f67a72a27..0000000000 --- a/database/migrations/2015_03_27_061038_changes_for_v333.php +++ /dev/null @@ -1,40 +0,0 @@ -smallInteger('order', false, true)->default(0); - - } - ); - } - -} diff --git a/database/migrations/2015_03_29_174140_changes_for_v336.php b/database/migrations/2015_03_29_174140_changes_for_v336.php deleted file mode 100644 index 315f1ff570..0000000000 --- a/database/migrations/2015_03_29_174140_changes_for_v336.php +++ /dev/null @@ -1,244 +0,0 @@ -dropForeign('account_user_id'); - - } - ); - - - Schema::table( - 'accounts', function (Blueprint $table) { - $table->string('name', 255)->change(); - $table->dropColumn('virtual_balance'); - - // recreate foreign key - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - - // recreate unique: - $table->unique(['user_id', 'account_type_id', 'name']); - } - ); - - - /** - * BILLS - */ - // change field to be cryptable. - Schema::table( - 'bills', function (Blueprint $table) { - // drop foreign key: - $table->dropForeign('bill_user_id'); - - // drop unique: - $table->dropUnique('bill_user_id'); - } - ); - // - Schema::table( - 'bills', function (Blueprint $table) { - // raw query: - - DB::insert('ALTER TABLE `bills` CHANGE `name` `name` varchar(255) NOT NULL'); - DB::insert('ALTER TABLE `bills` CHANGE `match` `match` varchar(255) NOT NULL'); - $table->foreign('user_id', 'bills_uid_for')->references('id')->on('users')->onDelete('cascade'); - $table->unique(['user_id', 'name'], 'uid_name_unique'); - } - ); - - // remove a long forgotten index: - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropUnique('unique_limit'); - } - ); - - } - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - - /** - * ACCOUNTS - */ - // change field to be cryptable. - Schema::table( - 'accounts', function (Blueprint $table) { - // drop foreign key: - $table->dropForeign('accounts_user_id_foreign'); - - // drop unique: - $table->dropUnique('accounts_user_id_account_type_id_name_unique'); - } - ); - - Schema::table( - 'accounts', function (Blueprint $table) { - $table->text('name')->change(); - $table->decimal('virtual_balance', 10, 2)->default(0); - $table->foreign('user_id', 'account_user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - - /** - * BUDGETS - */ - // add active/inactive and encrypt. - Schema::table( - 'budgets', function (Blueprint $table) { - $table->smallInteger('active', false, true)->default(1); - $table->smallInteger('encrypted', false, true)->default(0); - - // drop foreign key: - $table->dropForeign('budgets_user_id_foreign'); - - // drop unique: - $table->dropUnique('budgets_user_id_name_unique'); - - } - ); - Schema::table( - 'budgets', function (Blueprint $table) { - $table->text('name')->change(); - $table->foreign('user_id', 'budget_user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - - // reinstate a long forgotten index: - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->unique(['budget_id', 'startdate'], 'unique_limit'); - } - ); - - - /** - * BILLS - */ - // change field to be cryptable. - Schema::table( - 'bills', function (Blueprint $table) { - // drop foreign key: - $table->dropForeign('bills_uid_for'); - - // drop unique: - $table->dropUnique('uid_name_unique'); - } - ); - - Schema::table( - 'bills', function (Blueprint $table) { - // raw query: - try { - DB::insert('ALTER TABLE `bills` CHANGE `name` `name` TEXT NOT NULL'); - } catch (PDOException $e) { - // don't care. - } - try { - DB::insert('ALTER TABLE `bills` CHANGE `match` `match` TEXT NOT NULL'); - } catch (PDOException $e) { - // don't care. - } - $table->smallInteger('name_encrypted', false, true)->default(0); - $table->smallInteger('match_encrypted', false, true)->default(0); - $table->foreign('user_id', 'bill_user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - - /** - * CATEGORIES - */ - Schema::table( - 'categories', function (Blueprint $table) { - $table->smallInteger('encrypted', false, true)->default(0); - - // drop foreign key: - $table->dropForeign('categories_user_id_foreign'); - - // drop unique: - $table->dropUnique('categories_user_id_name_unique'); - - } - ); - Schema::table( - 'categories', function (Blueprint $table) { - $table->text('name')->change(); - $table->foreign('user_id', 'category_user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - - /** - * PIGGY BANKS - */ - Schema::table( - 'piggy_banks', function (Blueprint $table) { - $table->smallInteger('encrypted', false, true)->default(0); - - // drop foreign: - $table->dropForeign('piggybanks_account_id_foreign'); - - // drop unique: - $table->dropUnique('piggybanks_account_id_name_unique'); - - } - ); - Schema::table( - 'piggy_banks', function (Blueprint $table) { - try { - DB::insert('ALTER TABLE `piggy_banks` CHANGE `name` `name` TEXT NOT NULL'); - } catch (PDOException $e) { - // don't care. - } - $table->dropColumn(['repeats', 'rep_length', 'rep_every', 'rep_times']); - - // create index again: - $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); - } - ); - - /** - * REMINDERS - */ - Schema::table( - 'reminders', function (Blueprint $table) { - $table->smallInteger('encrypted', false, true)->default(0); - - - } - ); - - } - -} diff --git a/database/migrations/2015_04_26_054507_changes_for_v3310.php b/database/migrations/2015_04_26_054507_changes_for_v3310.php deleted file mode 100644 index 2bd1c4f0ec..0000000000 --- a/database/migrations/2015_04_26_054507_changes_for_v3310.php +++ /dev/null @@ -1,85 +0,0 @@ -dropColumn('relation'); - } - ); - - /* - * New table! - */ - Schema::create( - 'tags', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('user_id')->unsigned(); - $table->string('tag', 1024); - $table->string('tagMode', 1024); - $table->date('date')->nullable(); - $table->text('description')->nullable(); - $table->decimal('latitude', 18, 12)->nullable(); - $table->decimal('longitude', 18, 12)->nullable(); - $table->smallInteger('zoomLevel', false, true)->nullable(); - - // connect tags to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - } - ); - - - Schema::create( - 'tag_transaction_journal', function (Blueprint $table) { - $table->increments('id'); - $table->integer('tag_id')->unsigned(); - $table->integer('transaction_journal_id')->unsigned(); - - // link to foreign tables. - $table->foreign('tag_id', 'tag_grp_id')->references('id')->on('tags')->onDelete('cascade'); - $table->foreign('transaction_journal_id', 'tag_trj_id')->references('id')->on('transaction_journals')->onDelete('cascade'); - - // add unique. - $table->unique(['tag_id', 'transaction_journal_id'], 'tag_t_joined'); - - } - ); - } - -} diff --git a/database/migrations/2015_04_28_075215_changes_for_v3310a.php b/database/migrations/2015_04_28_075215_changes_for_v3310a.php deleted file mode 100644 index 81bdff7117..0000000000 --- a/database/migrations/2015_04_28_075215_changes_for_v3310a.php +++ /dev/null @@ -1,43 +0,0 @@ -string('relation', 50)->nullable(); - } - ); - // make new column "relation" - - } - -} diff --git a/database/migrations/2015_04_28_075317_changes_for_v3310b.php b/database/migrations/2015_04_28_075317_changes_for_v3310b.php deleted file mode 100644 index f950b19c21..0000000000 --- a/database/migrations/2015_04_28_075317_changes_for_v3310b.php +++ /dev/null @@ -1,35 +0,0 @@ -update(['relation' => 'balance']); - } - -} diff --git a/database/migrations/2015_05_22_172026_changes_for_v3409.php b/database/migrations/2015_05_22_172026_changes_for_v3409.php deleted file mode 100644 index 6fdbd1e607..0000000000 --- a/database/migrations/2015_05_22_172026_changes_for_v3409.php +++ /dev/null @@ -1,50 +0,0 @@ -dropColumn('name_encrypted'); - $table->dropColumn('data_encrypted'); - } - ); - } - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - - // encrypt preference name (add field) - // encrypt preference data (add field) - Schema::table( - 'preferences', function (Blueprint $table) { - $table->text('name_encrypted')->nullable()->after('name'); - $table->text('data_encrypted')->nullable()->after('data'); - } - ); - - } - -} diff --git a/database/migrations/2015_05_28_041652_entrust_setup_tables.php b/database/migrations/2015_05_28_041652_entrust_setup_tables.php deleted file mode 100644 index ab63daedab..0000000000 --- a/database/migrations/2015_05_28_041652_entrust_setup_tables.php +++ /dev/null @@ -1,87 +0,0 @@ -increments('id'); - $table->string('name')->unique(); - $table->string('display_name')->nullable(); - $table->string('description')->nullable(); - $table->timestamps(); - } - ); - - // Create table for associating roles to users (Many-to-Many) - Schema::create( - 'role_user', function (Blueprint $table) { - $table->integer('user_id')->unsigned(); - $table->integer('role_id')->unsigned(); - - $table->foreign('user_id')->references('id')->on('users') - ->onUpdate('cascade')->onDelete('cascade'); - $table->foreign('role_id')->references('id')->on('roles') - ->onUpdate('cascade')->onDelete('cascade'); - - $table->primary(['user_id', 'role_id']); - } - ); - - // Create table for storing permissions - Schema::create( - 'permissions', function (Blueprint $table) { - $table->increments('id'); - $table->string('name')->unique(); - $table->string('display_name')->nullable(); - $table->string('description')->nullable(); - $table->timestamps(); - } - ); - - // Create table for associating permissions to roles (Many-to-Many) - Schema::create( - 'permission_role', function (Blueprint $table) { - $table->integer('permission_id')->unsigned(); - $table->integer('role_id')->unsigned(); - - $table->foreign('permission_id')->references('id')->on('permissions') - ->onUpdate('cascade')->onDelete('cascade'); - $table->foreign('role_id')->references('id')->on('roles') - ->onUpdate('cascade')->onDelete('cascade'); - - $table->primary(['permission_id', 'role_id']); - } - ); - } -} diff --git a/database/migrations/2015_06_14_093841_changes_for_v345.php b/database/migrations/2015_06_14_093841_changes_for_v345.php deleted file mode 100644 index bbcb205de1..0000000000 --- a/database/migrations/2015_06_14_093841_changes_for_v345.php +++ /dev/null @@ -1,44 +0,0 @@ -dropColumn('tag_count'); - } - ); - } - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - // - Schema::table( - 'transaction_journals', function (Blueprint $table) { - $table->smallInteger('tag_count', false, true)->default(0); - } - ); - } -} diff --git a/database/migrations/2015_07_03_102450_changes_for_v3462.php b/database/migrations/2015_07_03_102450_changes_for_v3462.php deleted file mode 100644 index 3abeefe40e..0000000000 --- a/database/migrations/2015_07_03_102450_changes_for_v3462.php +++ /dev/null @@ -1,43 +0,0 @@ -dropColumn('iban'); - } - ); - } - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - // add IBAN to accounts: - Schema::table( - 'accounts', function (Blueprint $table) { - $table->string('iban')->nullable(); - } - ); - } -} diff --git a/database/migrations/2015_07_14_204645_changes_for_v349.php b/database/migrations/2015_07_14_204645_changes_for_v349.php deleted file mode 100644 index 2f5c419438..0000000000 --- a/database/migrations/2015_07_14_204645_changes_for_v349.php +++ /dev/null @@ -1,38 +0,0 @@ -boolean('blocked')->default(0); - } - ); - } -} diff --git a/database/migrations/2015_07_17_190438_changes_for_v3410.php b/database/migrations/2015_07_17_190438_changes_for_v3410.php deleted file mode 100644 index dcaafee5cd..0000000000 --- a/database/migrations/2015_07_17_190438_changes_for_v3410.php +++ /dev/null @@ -1,60 +0,0 @@ -increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('attachable_id')->unsigned(); - $table->string('attachable_type'); - $table->integer('user_id')->unsigned(); - $table->string('md5', 32); - $table->text('filename'); - $table->text('title')->nullable(); - $table->text('description')->nullable(); - $table->text('notes')->nullable(); - $table->text('mime'); - $table->integer('size')->unsigned(); - $table->tinyInteger('uploaded', false, true)->default(0); - - } - ); - - // add "blocked_code" to users: - Schema::table( - 'users', function (Blueprint $table) { - $table->string('blocked_code', 25)->nullable(); - } - ); - } -} diff --git a/database/migrations/2016_01_11_193428_changes_for_v370.php b/database/migrations/2016_01_11_193428_changes_for_v370.php deleted file mode 100644 index e35dc60c15..0000000000 --- a/database/migrations/2016_01_11_193428_changes_for_v370.php +++ /dev/null @@ -1,135 +0,0 @@ -date('interest_date')->nullable()->after('date'); - $table->date('book_date')->nullable()->after('interest_date'); - } - ); - - - // new table "rule_groups" - Schema::create( - 'rule_groups', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('user_id')->unsigned(); - $table->unsignedSmallInteger('order'); - $table->string('title', 255); - $table->text('description')->nullable(); - $table->unsignedTinyInteger('active')->default(1); - - // connect rule groups to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - - } - ); - - - Schema::create( - 'rules', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->softDeletes(); - $table->integer('user_id')->unsigned(); - $table->integer('rule_group_id')->unsigned(); - $table->unsignedSmallInteger('order'); - $table->unsignedTinyInteger('active')->default(1); - $table->unsignedTinyInteger('stop_processing')->default(0); - - $table->string('title', 255); - $table->text('description')->nullable(); - - - // connect rules to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - - // connect rules to rule groups - $table->foreign('rule_group_id')->references('id')->on('rule_groups')->onDelete('cascade'); - - } - ); - - - // new table "rule_triggers" - Schema::create( - 'rule_triggers', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->integer('rule_id')->unsigned(); - $table->unsignedSmallInteger('order'); - $table->unsignedTinyInteger('active')->default(1); - $table->unsignedTinyInteger('stop_processing')->default(0); - - $table->string('trigger_type', 50); - $table->string('trigger_value', 255)->nullable(); - - // connect rule triggers to rules - $table->foreign('rule_id')->references('id')->on('rules')->onDelete('cascade'); - } - ); - - // new table "rule_actions" - Schema::create( - 'rule_actions', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->integer('rule_id')->unsigned(); - $table->unsignedSmallInteger('order'); - $table->unsignedTinyInteger('active')->default(1); - $table->unsignedTinyInteger('stop_processing')->default(0); - - $table->string('action_type', 50); - $table->string('action_value', 255)->nullable(); - - // connect rule actions to rules - $table->foreign('rule_id')->references('id')->on('rules')->onDelete('cascade'); - - } - ); - - } -} diff --git a/database/migrations/2016_02_04_144117_changes_for_v380.php b/database/migrations/2016_02_04_144117_changes_for_v380.php deleted file mode 100644 index f1aed9e55f..0000000000 --- a/database/migrations/2016_02_04_144117_changes_for_v380.php +++ /dev/null @@ -1,70 +0,0 @@ -date('process_date')->nullable()->after('book_date'); - } - ); - - // new table "export_jobs" - Schema::create( - 'export_jobs', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->integer('user_id')->unsigned(); - $table->string('key', 12)->unique(); - $table->string('status', 45); - - // connect rule groups to users - $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); - - } - ); - - // new table for transaction journal meta, "journal_meta" - Schema::create( - 'journal_meta', function (Blueprint $table) { - $table->increments('id'); - $table->timestamps(); - $table->integer('transaction_journal_id')->unsigned(); - $table->string('name'); - $table->text('data'); - - $table->unique(['transaction_journal_id', 'name']); - - // link to transaction journal - $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); - } - ); - } -} diff --git a/database/migrations/2016_02_24_172426_create_jobs_table.php b/database/migrations/2016_02_24_172426_create_jobs_table.php deleted file mode 100644 index 34be24287c..0000000000 --- a/database/migrations/2016_02_24_172426_create_jobs_table.php +++ /dev/null @@ -1,42 +0,0 @@ -bigIncrements('id'); - $table->string('queue'); - $table->longText('payload'); - $table->tinyInteger('attempts')->unsigned(); - $table->tinyInteger('reserved')->unsigned(); - $table->unsignedInteger('reserved_at')->nullable(); - $table->unsignedInteger('available_at'); - $table->unsignedInteger('created_at'); - $table->index(['queue', 'reserved', 'reserved_at']); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('jobs'); - } -} diff --git a/database/migrations/2016_04_08_181054_changes_for_v383.php b/database/migrations/2016_04_08_181054_changes_for_v383.php deleted file mode 100644 index f550d2d18d..0000000000 --- a/database/migrations/2016_04_08_181054_changes_for_v383.php +++ /dev/null @@ -1,38 +0,0 @@ -string('hash', 64)->nullable(); - } - ); - } -} diff --git a/database/migrations/2016_04_25_093451_changes_for_v390.php b/database/migrations/2016_04_25_093451_changes_for_v390.php deleted file mode 100644 index 016573a4af..0000000000 --- a/database/migrations/2016_04_25_093451_changes_for_v390.php +++ /dev/null @@ -1,194 +0,0 @@ -unique(['budget_id', 'startdate', 'repeat_freq'], 'unique_bl_combi'); - } - ); - - - $backup = $this->backupRepeatFreqsFromString(); - - // drop string and create enum field - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropColumn('repeat_freq'); - } - ); - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->enum('repeat_freq', ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly']); - } - ); - - // restore backup. Change unknowns to "monthly". - $this->restoreRepeatFreqsToEnum($backup); - - // drop budget <> transaction table: - Schema::dropIfExists('budget_transaction'); - - // drop category <> transaction table: - Schema::dropIfExists('category_transaction'); - - } - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - // // remove an index. - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropForeign('bid_foreign'); - } - ); - - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropUnique('unique_limit'); - $table->dropUnique('unique_bl_combi'); - } - ); - - - // recreate foreign key: - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->foreign('budget_id', 'bid_foreign')->references('id')->on('budgets')->onDelete('cascade'); - } - ); - - - // backup values - $backup = $this->backupRepeatFreqsFromEnum(); - - // drop enum and create varchar field - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->dropColumn('repeat_freq'); - } - ); - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->string('repeat_freq', 20)->default('monthly'); - } - ); - - // put data back: - $this->restoreRepeatFreqsToVarchar($backup); - - - // create it again, correctly. - Schema::table( - 'budget_limits', function (Blueprint $table) { - $table->unique(['budget_id', 'startdate', 'repeat_freq'], 'unique_limit'); - } - ); - - // create NEW table for transactions <> budgets - Schema::create( - 'budget_transaction', function (Blueprint $table) { - $table->increments('id'); - $table->integer('budget_id')->unsigned(); - $table->integer('transaction_id')->unsigned(); - $table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade'); - $table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade'); - $table->unique(['budget_id', 'transaction_id'], 'budid_tid_unique'); - } - ); - - // create NEW table for transactions <> categories - Schema::create( - 'category_transaction', function (Blueprint $table) { - $table->increments('id'); - $table->integer('category_id')->unsigned(); - $table->integer('transaction_id')->unsigned(); - $table->foreign('category_id')->references('id')->on('categories')->onDelete('cascade'); - $table->foreign('transaction_id')->references('id')->on('transactions')->onDelete('cascade'); - $table->unique(['category_id', 'transaction_id'], 'catid_tid_unique'); - } - ); - } - - /** - * @return array - */ - private function backupRepeatFreqsFromEnum(): array - { - $backup = []; - $set = BudgetLimit::get(); - /** @var BudgetLimit $entry */ - foreach ($set as $entry) { - $backup[$entry->id] = $entry->repeat_freq; - } - - return $backup; - } - - /** - * Same routine. - * - * @return array - */ - private function backupRepeatFreqsFromString() - { - return $this->backupRepeatFreqsFromEnum(); - } - - /** - * @param array $backup - * - * @return bool - */ - private function restoreRepeatFreqsToEnum(array $backup): bool - { - foreach ($backup as $id => $repeatFreq) { - $budgetLimit = BudgetLimit::find($id); - if (!in_array($repeatFreq, ['daily', 'weekly', 'monthly', 'quarterly', 'half-year', 'yearly'])) { - $repeatFreq = 'monthly'; - } - $budgetLimit->repeat_freq = $repeatFreq; - $budgetLimit->save(); - } - - return true; - } - - /** - * @param array $backup - * - * @return bool - */ - private function restoreRepeatFreqsToVarchar(array $backup): bool - { - foreach ($backup as $id => $repeatFreq) { - $budgetLimit = BudgetLimit::find($id); - $budgetLimit->repeat_freq = $repeatFreq; - $budgetLimit->save(); - } - - return true; - } -} diff --git a/database/migrations/2016_06_16_192032_create_support_tables.php b/database/migrations/2016_06_16_192032_create_support_tables.php new file mode 100644 index 0000000000..bde6d8a07f --- /dev/null +++ b/database/migrations/2016_06_16_192032_create_support_tables.php @@ -0,0 +1,183 @@ +increments('id'); + $table->timestamps(); + $table->string('type', 50); + + // type must be unique. + $table->unique(['type']); + } + ); + } + /* + * transaction_currencies + */ + if (!Schema::hasTable('transaction_currencies')) { + Schema::create( + 'transaction_currencies', function (Blueprint $table) { + $table->increments('id'); + $table->timestamps(); + $table->softDeletes(); + $table->string('code', 3); + $table->string('name', 255); + $table->string('symbol', 12); + + // code must be unique. + $table->unique(['code']); + + }); + } + + /* + * transaction_types + */ + if (!Schema::hasTable('transaction_types')) { + Schema::create( + 'transaction_types', function (Blueprint $table) { + $table->increments('id'); + $table->timestamps(); + $table->softDeletes(); + $table->string('type', 50); + + // type must be unique. + $table->unique(['type']); + + }); + } + + /* + * jobs + */ + if (!Schema::hasTable('jobs')) { + Schema::create( + 'jobs', function (Blueprint $table) { + + // straight from Laravel + $table->bigIncrements('id'); + $table->string('queue'); + $table->longText('payload'); + $table->tinyInteger('attempts')->unsigned(); + $table->tinyInteger('reserved')->unsigned(); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + $table->index(['queue', 'reserved', 'reserved_at']); + + }); + } + + /* + * password_resets + */ + if (!Schema::hasTable('password_resets')) { + Schema::create( + 'password_resets', function (Blueprint $table) { + // straight from laravel + $table->string('email')->index(); + $table->string('token')->index(); + $table->timestamp('created_at'); + + }); + } + + /* + * permissions + */ + if (!Schema::hasTable('permissions')) { + Schema::create( + 'permissions', function (Blueprint $table) { + $table->increments('id'); + $table->timestamps(); + $table->string('name')->unique(); + $table->string('display_name')->nullable(); + $table->string('description')->nullable(); + }); + } + + /* + * roles + */ + if (!Schema::hasTable('roles')) { + Schema::create( + 'roles', function (Blueprint $table) { + $table->increments('id'); + $table->timestamps(); + $table->string('name')->unique(); + $table->string('display_name')->nullable(); + $table->string('description')->nullable(); + }); + } + + /* + * permission_role + */ + if (!Schema::hasTable('permission_role')) { + Schema::create( + 'permission_role', function (Blueprint $table) { + $table->integer('permission_id')->unsigned(); + $table->integer('role_id')->unsigned(); + $table->foreign('permission_id')->references('id')->on('permissions')->onUpdate('cascade')->onDelete('cascade'); + $table->foreign('role_id')->references('id')->on('roles')->onUpdate('cascade')->onDelete('cascade'); + + $table->primary(['permission_id', 'role_id']); + }); + } + + /* + * sessions + */ + if (!Schema::hasTable('sessions')) { + Schema::create( + 'sessions', function (Blueprint $table) { + $table->string('id')->unique(); + $table->integer('user_id')->nullable(); + $table->string('ip_address', 45)->nullable(); + $table->text('user_agent')->nullable(); + $table->text('payload'); + $table->integer('last_activity'); + }); + } + + } +}