diff --git a/app/Constants.php b/app/Constants.php index c730456f315e..2bc1a0fdf40e 100644 --- a/app/Constants.php +++ b/app/Constants.php @@ -342,7 +342,7 @@ if (! defined('APP_NAME')) { define('NINJA_APP_URL', env('NINJA_APP_URL', 'https://app.invoiceninja.com')); define('NINJA_DOCS_URL', env('NINJA_DOCS_URL', 'http://docs.invoiceninja.com/en/latest')); define('NINJA_DATE', '2000-01-01'); - define('NINJA_VERSION', '4.4.1' . env('NINJA_VERSION_SUFFIX')); + define('NINJA_VERSION', '4.4.2' . env('NINJA_VERSION_SUFFIX')); define('NINJA_TERMS_VERSION', ''); define('SOCIAL_LINK_FACEBOOK', env('SOCIAL_LINK_FACEBOOK', 'https://www.facebook.com/invoiceninja')); diff --git a/database/migrations/2018_03_08_150414_add_slack_notifications.php b/database/migrations/2018_03_08_150414_add_slack_notifications.php index ef67735c13bc..546af5932445 100644 --- a/database/migrations/2018_03_08_150414_add_slack_notifications.php +++ b/database/migrations/2018_03_08_150414_add_slack_notifications.php @@ -20,30 +20,34 @@ class AddSlackNotifications extends Migration DB::statement('UPDATE activities SET client_id = NULL WHERE client_id = 0'); - Schema::table('activities', function ($table) { - $table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade'); - $table->index('payment_id'); - }); + if (! Schema::hasColumn('users', 'slack_webhook_url')) { + Schema::table('users', function ($table) { + $table->string('slack_webhook_url')->nullable(); + $table->string('accepted_terms_version')->nullable(); + $table->timestamp('accepted_terms_timestamp')->nullable(); + $table->string('accepted_terms_ip')->nullable(); + }); + } - Schema::table('users', function ($table) { - $table->string('slack_webhook_url')->nullable(); - $table->string('accepted_terms_version')->nullable(); - $table->timestamp('accepted_terms_timestamp')->nullable(); - $table->string('accepted_terms_ip')->nullable(); - }); - - Schema::table('accounts', function ($table) { - $table->boolean('auto_archive_invoice')->default(false)->nullable(); - $table->boolean('auto_archive_quote')->default(false)->nullable(); - $table->boolean('auto_email_invoice')->default(true)->nullable(); - $table->boolean('send_item_details')->default(false)->nullable(); - }); - - Schema::table('expenses', function ($table) { - $table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade'); - }); + if (! Schema::hasColumn('accounts', 'auto_archive_invoice')) { + Schema::table('accounts', function ($table) { + $table->boolean('auto_archive_invoice')->default(false)->nullable(); + $table->boolean('auto_archive_quote')->default(false)->nullable(); + $table->boolean('auto_email_invoice')->default(true)->nullable(); + $table->boolean('send_item_details')->default(false)->nullable(); + }); + } try { + Schema::table('expenses', function ($table) { + $table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade'); + }); + + Schema::table('activities', function ($table) { + $table->foreign('client_id')->references('id')->on('clients')->onDelete('cascade'); + $table->index('payment_id'); + }); + Schema::table('companies', function ($table) { $table->dropForeign('companies_payment_id_foreign'); }); diff --git a/docs/conf.py b/docs/conf.py index 91d016fa91fa..51b5d8eda19f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -59,7 +59,7 @@ author = u'Invoice Ninja' # The short X.Y version. version = u'4.4' # The full version, including alpha/beta/rc tags. -release = u'4.4.1' +release = u'4.4.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.