14 use Illuminate\Database\Migrations\Migration;
15 use Illuminate\Database\Schema\Builder;
16 use Illuminate\Database\Schema\Blueprint;
17 use Illuminate\Database\Capsule\Manager as Capsule;
24 public function up() {
25 Capsule::schema()->table(
'submissions',
function (Blueprint $table) {
27 $table->dropColumn(
'locale');
29 $table->dropColumn(
'section_id');
31 Capsule::schema()->table(
'publication_settings',
function (Blueprint $table) {
33 $table->mediumText(
'setting_value')->nullable()->change();
35 Capsule::schema()->table(
'authors',
function (Blueprint $table) {
37 $table->dropColumn(
'submission_id');
39 Capsule::schema()->table(
'author_settings',
function (Blueprint $table) {
41 $table->dropColumn(
'setting_type');
43 Capsule::schema()->table(
'announcements',
function (Blueprint $table) {
45 $table->date(
'date_expire')->change();
47 Capsule::schema()->table(
'email_templates_default',
function (Blueprint $table) {
49 $table->bigInteger(
'stage_id')->nullable();
53 Capsule::schema()->table(
'user_settings',
function (Blueprint $table) {
54 $table->bigInteger(
'assoc_type')->
default(0)->change();
55 $table->bigInteger(
'assoc_id')->
default(0)->change();
57 Capsule::schema()->table(
'announcement_types',
function (Blueprint $table) {
58 $table->bigInteger(
'assoc_type')->change();
60 Capsule::schema()->table(
'email_templates',
function (Blueprint $table) {
61 $table->bigInteger(
'context_id')->
default(0)->change();
63 Capsule::schema()->table(
'genres',
function (Blueprint $table) {
64 $table->bigInteger(
'seq')->change();
65 $table->tinyInteger(
'supplementary')->
default(0)->change();
67 Capsule::schema()->table(
'event_log',
function (Blueprint $table) {
68 $table->bigInteger(
'assoc_type')->change();
69 $table->bigInteger(
'assoc_id')->change();
71 Capsule::schema()->table(
'email_log',
function (Blueprint $table) {
72 $table->bigInteger(
'assoc_type')->change();
73 $table->bigInteger(
'assoc_id')->change();
75 Capsule::schema()->table(
'notes',
function (Blueprint $table) {
76 $table->bigInteger(
'assoc_type')->change();
77 $table->bigInteger(
'assoc_id')->change();
79 Capsule::schema()->table(
'review_forms',
function (Blueprint $table) {
80 $table->bigInteger(
'assoc_type')->change();
81 $table->bigInteger(
'assoc_id')->change();
83 Capsule::schema()->table(
'review_assignments',
function (Blueprint $table) {
84 $table->bigInteger(
'review_round_id')->change();
86 Capsule::schema()->table(
'authors',
function (Blueprint $table) {
87 $table->bigInteger(
'publication_id')->change();
89 Capsule::schema()->table(
'edit_decisions',
function (Blueprint $table) {
90 $table->bigInteger(
'review_round_id')->change();
92 Capsule::connection()->unprepared(
'UPDATE review_assignments SET review_form_id=NULL WHERE review_form_id=0');
94 $this->_populateEmailTemplates();
95 $this->_makeRemoteUrlLocalizable();
103 throw new Exception(
'Downgrade not supported.');
110 private function _populateEmailTemplates() {
113 $data = $xmlDao->parseStruct($emailTemplateDao->getMainEmailTemplatesFilename(), array(
'email'));
114 foreach ($data[
'email'] as $template) {
115 $attr = $template[
'attributes'];
116 if (array_key_exists(
'stage_id', $attr)) {
117 Capsule::table(
'email_templates_default')->where(
'email_key', $attr[
'key'])->update(array(
'stage_id' => $attr[
'stage_id']));
126 private function _makeRemoteUrlLocalizable() {
128 $contextIds = $contextService->getIds();
129 foreach ($contextIds as $contextId) {
130 $context = $contextService->get($contextId);
131 $locales = $context->getData(
'supportedLocales');
133 $navigationItems = Capsule::table(
'navigation_menu_items')->where(
'context_id', $contextId)->pluck(
'url',
'navigation_menu_item_id')->filter()->all();
134 foreach ($navigationItems as $navigation_menu_item_id => $url) {
135 foreach ($locales as $locale) {
136 Capsule::table(
'navigation_menu_item_settings')->insert([
137 'navigation_menu_item_id' => $navigation_menu_item_id,
139 'setting_name' =>
'remoteUrl',
140 'setting_value' => $url,
141 'setting_type' =>
'string'
148 $site = $siteDao->getSite();
149 $supportedLocales = $site->getSupportedLocales();
150 $navigationItems = Capsule::table(
'navigation_menu_items')->where(
'context_id',
'0')->pluck(
'url',
'navigation_menu_item_id')->filter()->all();
151 foreach ($navigationItems as $navigation_menu_item_id => $url) {
152 foreach ($supportedLocales as $locale) {
153 Capsule::table(
'navigation_menu_item_settings')->insert([
154 'navigation_menu_item_id' => $navigation_menu_item_id,
156 'setting_name' =>
'remoteUrl',
157 'setting_value' => $url,
158 'setting_type' =>
'string'
163 Capsule::schema()->table(
'navigation_menu_items',
function (Blueprint $table) {
164 $table->dropColumn(
'url');