File obs-server-2.9-0035-frontend-Rails-5.2-Add-a-primary-key-to-data-migrati.patch of Package obs-server

From 490f20f1c335d7f2b95496282115ca18f65a65da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Geuken?= <bgeuken@suse.de>
Date: Wed, 23 May 2018 14:59:39 +0200
Subject: [PATCH] [frontend] Rails 5.2: Add a primary key to data migration
 table

With the recent rails update our structure sql test would dump out a
different schema for the data migration tabel than we have in existing
OBS instances:

`
 CREATE TABLE `data_migrations` (
   `version` varchar(255) NOT NULL,
-  UNIQUE KEY `unique_data_migrations` (`version`)
+  PRIMARY KEY (`version`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
`

Created with `rake docker:test:lint`.

This commit provides a migration that replaces the existing index with
a primary key. That way existing OBS DB schemas will stay in sync with
schemas of newly created DBs.
---
 ...0523123532_add_primary_key_to_data_migrations.rb | 13 +++++++++++++
 src/api/db/structure.sql                            |  5 +++--
 2 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100644 src/api/db/migrate/20180523123532_add_primary_key_to_data_migrations.rb

diff --git a/src/api/db/migrate/20180523123532_add_primary_key_to_data_migrations.rb b/src/api/db/migrate/20180523123532_add_primary_key_to_data_migrations.rb
new file mode 100644
index 0000000000..5c13962dbf
--- /dev/null
+++ b/src/api/db/migrate/20180523123532_add_primary_key_to_data_migrations.rb
@@ -0,0 +1,13 @@
+class AddPrimaryKeyToDataMigrations < ActiveRecord::Migration[5.1]
+  def up
+    change_column :data_migrations, :version, :string, limit: 255, primary_key: true if primary_keys(:data_migrations).empty?
+    return unless index_exists?(:data_migrations, :version, name: :unique_data_migrations)
+    remove_index :data_migrations, name: :unique_data_migrations
+  end
+
+  def down
+    execute('alter table data_migrations DROP PRIMARY KEY') unless primary_keys(:data_migrations).empty?
+    return if index_exists?(:data_migrations, :version, name: :unique_data_migrations)
+    add_index :data_migrations, :version, name: :unique_data_migrations, unique: true
+  end
+end
diff --git a/src/api/db/structure.sql b/src/api/db/structure.sql
index 188e73d4fe..8aab31f14e 100644
--- a/src/api/db/structure.sql
+++ b/src/api/db/structure.sql
@@ -399,7 +399,7 @@ CREATE TABLE `configurations` (
 
 CREATE TABLE `data_migrations` (
   `version` varchar(255) NOT NULL,
-  UNIQUE KEY `unique_data_migrations` (`version`)
+  PRIMARY KEY (`version`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 CREATE TABLE `delayed_jobs` (
@@ -1315,7 +1315,8 @@ INSERT INTO `schema_migrations` (version) VALUES
 ('20171219122451'),
 ('20180109115548'),
 ('20180110074142'),
-('20180307074538');
+('20180307074538'),
+('20180523123532'),
 ('20180815091004');
 
 
-- 
2.20.1