Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <zegerjan@gitlab.com>2017-05-08 01:35:56 +0300
committerKamil TrzciƄski <ayufan@ayufan.eu>2017-05-08 01:35:56 +0300
commit8df3997a92bffa2d29f3c559933a336b837cdb93 (patch)
tree5ee50876b35b6c5fd40607665f72468cfcee51fe /db
parent8a0cde81feb3c8f3af26eefa5cef7b72eda2d266 (diff)
Add Pipeline Schedules that supersedes experimental Trigger Schedule
Diffstat (limited to 'db')
-rw-r--r--db/migrate/20170425112128_create_pipeline_schedules_table.rb28
-rw-r--r--db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb13
-rw-r--r--db/migrate/20170425114731_add_pipeline_schedule_id_to_pipelines.rb9
-rw-r--r--db/migrate/20170506085040_add_index_to_pipeline_pipeline_schedule_id.rb19
-rw-r--r--db/migrate/20170506091344_add_foreign_key_to_pipeline_schedules.rb15
-rw-r--r--db/migrate/20170506185517_add_foreign_key_pipeline_schedules_and_pipelines.rb23
-rw-r--r--db/post_migrate/20170425121605_migrate_trigger_schedules_to_pipeline_schedules.rb41
-rw-r--r--db/post_migrate/20170425130047_drop_ci_trigger_schedules_table.rb32
-rw-r--r--db/schema.rb55
9 files changed, 209 insertions, 26 deletions
diff --git a/db/migrate/20170425112128_create_pipeline_schedules_table.rb b/db/migrate/20170425112128_create_pipeline_schedules_table.rb
new file mode 100644
index 00000000000..3612a796ae8
--- /dev/null
+++ b/db/migrate/20170425112128_create_pipeline_schedules_table.rb
@@ -0,0 +1,28 @@
+class CreatePipelineSchedulesTable < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def up
+ create_table :ci_pipeline_schedules do |t|
+ t.string :description
+ t.string :ref
+ t.string :cron
+ t.string :cron_timezone
+ t.datetime :next_run_at
+ t.integer :project_id
+ t.integer :owner_id
+ t.boolean :active, default: true
+ t.datetime :deleted_at
+
+ t.timestamps
+ end
+
+ add_index(:ci_pipeline_schedules, :project_id)
+ add_index(:ci_pipeline_schedules, [:next_run_at, :active])
+ end
+
+ def down
+ drop_table :ci_pipeline_schedules
+ end
+end
diff --git a/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb b/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb
new file mode 100644
index 00000000000..6116ca59ee4
--- /dev/null
+++ b/db/migrate/20170425112628_remove_foreigh_key_ci_trigger_schedules.rb
@@ -0,0 +1,13 @@
+class RemoveForeighKeyCiTriggerSchedules < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def up
+ remove_foreign_key :ci_trigger_schedules, column: :trigger_id
+ end
+
+ def down
+ # no op, the foreign key should not have been here
+ end
+end
diff --git a/db/migrate/20170425114731_add_pipeline_schedule_id_to_pipelines.rb b/db/migrate/20170425114731_add_pipeline_schedule_id_to_pipelines.rb
new file mode 100644
index 00000000000..ddb27d4dc81
--- /dev/null
+++ b/db/migrate/20170425114731_add_pipeline_schedule_id_to_pipelines.rb
@@ -0,0 +1,9 @@
+class AddPipelineScheduleIdToPipelines < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def change
+ add_column :ci_pipelines, :pipeline_schedule_id, :integer
+ end
+end
diff --git a/db/migrate/20170506085040_add_index_to_pipeline_pipeline_schedule_id.rb b/db/migrate/20170506085040_add_index_to_pipeline_pipeline_schedule_id.rb
new file mode 100644
index 00000000000..08a7f3fc9ab
--- /dev/null
+++ b/db/migrate/20170506085040_add_index_to_pipeline_pipeline_schedule_id.rb
@@ -0,0 +1,19 @@
+class AddIndexToPipelinePipelineScheduleId < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ unless index_exists?(:ci_pipelines, :pipeline_schedule_id)
+ add_concurrent_index(:ci_pipelines, :pipeline_schedule_id)
+ end
+ end
+
+ def down
+ if index_exists?(:ci_pipelines, :pipeline_schedule_id)
+ remove_concurrent_index(:ci_pipelines, :pipeline_schedule_id)
+ end
+ end
+end
diff --git a/db/migrate/20170506091344_add_foreign_key_to_pipeline_schedules.rb b/db/migrate/20170506091344_add_foreign_key_to_pipeline_schedules.rb
new file mode 100644
index 00000000000..7f2dba702af
--- /dev/null
+++ b/db/migrate/20170506091344_add_foreign_key_to_pipeline_schedules.rb
@@ -0,0 +1,15 @@
+class AddForeignKeyToPipelineSchedules < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ add_concurrent_foreign_key :ci_pipeline_schedules, :projects, column: :project_id
+ end
+
+ def down
+ remove_foreign_key :ci_pipeline_schedules, :projects
+ end
+end
diff --git a/db/migrate/20170506185517_add_foreign_key_pipeline_schedules_and_pipelines.rb b/db/migrate/20170506185517_add_foreign_key_pipeline_schedules_and_pipelines.rb
new file mode 100644
index 00000000000..55bf40ba24d
--- /dev/null
+++ b/db/migrate/20170506185517_add_foreign_key_pipeline_schedules_and_pipelines.rb
@@ -0,0 +1,23 @@
+class AddForeignKeyPipelineSchedulesAndPipelines < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ on_delete =
+ if Gitlab::Database.mysql?
+ :nullify
+ else
+ 'SET NULL'
+ end
+
+ add_concurrent_foreign_key :ci_pipelines, :ci_pipeline_schedules,
+ column: :pipeline_schedule_id, on_delete: on_delete
+ end
+
+ def down
+ remove_foreign_key :ci_pipelines, column: :pipeline_schedule_id
+ end
+end
diff --git a/db/post_migrate/20170425121605_migrate_trigger_schedules_to_pipeline_schedules.rb b/db/post_migrate/20170425121605_migrate_trigger_schedules_to_pipeline_schedules.rb
new file mode 100644
index 00000000000..a44b399c4de
--- /dev/null
+++ b/db/post_migrate/20170425121605_migrate_trigger_schedules_to_pipeline_schedules.rb
@@ -0,0 +1,41 @@
+class MigrateTriggerSchedulesToPipelineSchedules < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ def up
+ connection.execute <<-SQL
+ INSERT INTO ci_pipeline_schedules (
+ project_id,
+ created_at,
+ updated_at,
+ deleted_at,
+ cron,
+ cron_timezone,
+ next_run_at,
+ ref,
+ active,
+ owner_id,
+ description
+ )
+ SELECT
+ ci_trigger_schedules.project_id,
+ ci_trigger_schedules.created_at,
+ ci_trigger_schedules.updated_at,
+ ci_trigger_schedules.deleted_at,
+ ci_trigger_schedules.cron,
+ ci_trigger_schedules.cron_timezone,
+ ci_trigger_schedules.next_run_at,
+ ci_trigger_schedules.ref,
+ ci_trigger_schedules.active,
+ ci_triggers.owner_id,
+ ci_triggers.description
+ FROM ci_trigger_schedules
+ INNER JOIN ci_triggers ON ci_trigger_schedules.trigger_id=ci_triggers.id;
+ SQL
+ end
+
+ def down
+ # no op as the data has been removed
+ end
+end
diff --git a/db/post_migrate/20170425130047_drop_ci_trigger_schedules_table.rb b/db/post_migrate/20170425130047_drop_ci_trigger_schedules_table.rb
new file mode 100644
index 00000000000..24750c58ef0
--- /dev/null
+++ b/db/post_migrate/20170425130047_drop_ci_trigger_schedules_table.rb
@@ -0,0 +1,32 @@
+class DropCiTriggerSchedulesTable < ActiveRecord::Migration
+ include Gitlab::Database::MigrationHelpers
+
+ DOWNTIME = false
+
+ disable_ddl_transaction!
+
+ def up
+ drop_table :ci_trigger_schedules
+ end
+
+ def down
+ create_table "ci_trigger_schedules", force: :cascade do |t|
+ t.integer "project_id"
+ t.integer "trigger_id", null: false
+ t.datetime "deleted_at"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.string "cron"
+ t.string "cron_timezone"
+ t.datetime "next_run_at"
+ t.string "ref"
+ t.boolean "active"
+ end
+
+ add_index "ci_trigger_schedules", %w(active next_run_at), name: "index_ci_trigger_schedules_on_active_and_next_run_at", using: :btree
+ add_index "ci_trigger_schedules", ["project_id"], name: "index_ci_trigger_schedules_on_project_id", using: :btree
+ add_index "ci_trigger_schedules", ["next_run_at"], name: "index_ci_trigger_schedules_on_next_run_at"
+
+ add_concurrent_foreign_key "ci_trigger_schedules", "ci_triggers", column: :trigger_id, on_delete: :cascade
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 61af066ed3b..722e776c27d 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20170504102911) do
+ActiveRecord::Schema.define(version: 20170506185517) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -95,6 +95,7 @@ ActiveRecord::Schema.define(version: 20170504102911) do
t.string "enabled_git_access_protocol"
t.boolean "domain_blacklist_enabled", default: false
t.text "domain_blacklist"
+ t.boolean "usage_ping_enabled", default: true, null: false
t.boolean "koding_enabled"
t.string "koding_url"
t.text "sign_in_text_html"
@@ -113,14 +114,13 @@ ActiveRecord::Schema.define(version: 20170504102911) do
t.string "plantuml_url"
t.boolean "plantuml_enabled"
t.integer "terminal_max_session_time", default: 0, null: false
- t.string "default_artifacts_expire_in", default: "0", null: false
t.integer "unique_ips_limit_per_user"
t.integer "unique_ips_limit_time_window"
t.boolean "unique_ips_limit_enabled", default: false, null: false
+ t.string "default_artifacts_expire_in", default: "0", null: false
+ t.string "uuid"
t.decimal "polling_interval_multiplier", default: 1.0, null: false
t.integer "cached_markdown_version"
- t.boolean "usage_ping_enabled", default: true, null: false
- t.string "uuid"
t.boolean "clientside_sentry_enabled", default: false, null: false
t.string "clientside_sentry_dsn"
end
@@ -246,6 +246,23 @@ ActiveRecord::Schema.define(version: 20170504102911) do
add_index "ci_builds", ["updated_at"], name: "index_ci_builds_on_updated_at", using: :btree
add_index "ci_builds", ["user_id"], name: "index_ci_builds_on_user_id", using: :btree
+ create_table "ci_pipeline_schedules", force: :cascade do |t|
+ t.string "description"
+ t.string "ref"
+ t.string "cron"
+ t.string "cron_timezone"
+ t.datetime "next_run_at"
+ t.integer "project_id"
+ t.integer "owner_id"
+ t.boolean "active", default: true
+ t.datetime "deleted_at"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "ci_pipeline_schedules", ["next_run_at", "active"], name: "index_ci_pipeline_schedules_on_next_run_at_and_active", using: :btree
+ add_index "ci_pipeline_schedules", ["project_id"], name: "index_ci_pipeline_schedules_on_project_id", using: :btree
+
create_table "ci_pipelines", force: :cascade do |t|
t.string "ref"
t.string "sha"
@@ -263,8 +280,10 @@ ActiveRecord::Schema.define(version: 20170504102911) do
t.integer "user_id"
t.integer "lock_version"
t.integer "auto_canceled_by_id"
+ t.integer "pipeline_schedule_id"
end
+ add_index "ci_pipelines", ["pipeline_schedule_id"], name: "index_ci_pipelines_on_pipeline_schedule_id", using: :btree
add_index "ci_pipelines", ["project_id", "ref", "status"], name: "index_ci_pipelines_on_project_id_and_ref_and_status", using: :btree
add_index "ci_pipelines", ["project_id", "sha"], name: "index_ci_pipelines_on_project_id_and_sha", using: :btree
add_index "ci_pipelines", ["project_id"], name: "index_ci_pipelines_on_project_id", using: :btree
@@ -313,23 +332,6 @@ ActiveRecord::Schema.define(version: 20170504102911) do
add_index "ci_trigger_requests", ["commit_id"], name: "index_ci_trigger_requests_on_commit_id", using: :btree
- create_table "ci_trigger_schedules", force: :cascade do |t|
- t.integer "project_id"
- t.integer "trigger_id", null: false
- t.datetime "deleted_at"
- t.datetime "created_at"
- t.datetime "updated_at"
- t.string "cron"
- t.string "cron_timezone"
- t.datetime "next_run_at"
- t.string "ref"
- t.boolean "active"
- end
-
- add_index "ci_trigger_schedules", ["active", "next_run_at"], name: "index_ci_trigger_schedules_on_active_and_next_run_at", using: :btree
- add_index "ci_trigger_schedules", ["next_run_at"], name: "index_ci_trigger_schedules_on_next_run_at", using: :btree
- add_index "ci_trigger_schedules", ["project_id"], name: "index_ci_trigger_schedules_on_project_id", using: :btree
-
create_table "ci_triggers", force: :cascade do |t|
t.string "token"
t.datetime "deleted_at"
@@ -981,8 +983,8 @@ ActiveRecord::Schema.define(version: 20170504102911) do
t.boolean "lfs_enabled"
t.text "description_html"
t.boolean "only_allow_merge_if_all_discussions_are_resolved"
- t.integer "auto_cancel_pending_pipelines", default: 0, null: false
t.boolean "printing_merge_request_link_enabled", default: true, null: false
+ t.integer "auto_cancel_pending_pipelines", default: 0, null: false
t.string "import_jid"
t.integer "cached_markdown_version"
t.datetime "last_repository_updated_at"
@@ -1349,11 +1351,11 @@ ActiveRecord::Schema.define(version: 20170504102911) do
t.string "incoming_email_token"
t.string "organization"
t.boolean "authorized_projects_populated"
+ t.boolean "require_two_factor_authentication_from_group", default: false, null: false
+ t.integer "two_factor_grace_period", default: 48, null: false
t.boolean "ghost"
t.date "last_activity_on"
t.boolean "notified_of_own_activity"
- t.boolean "require_two_factor_authentication_from_group", default: false, null: false
- t.integer "two_factor_grace_period", default: 48, null: false
t.string "preferred_language"
end
@@ -1408,13 +1410,14 @@ ActiveRecord::Schema.define(version: 20170504102911) do
add_foreign_key "boards", "projects"
add_foreign_key "chat_teams", "namespaces", on_delete: :cascade
add_foreign_key "ci_builds", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_a2141b1522", on_delete: :nullify
+ add_foreign_key "ci_pipeline_schedules", "projects", name: "fk_8ead60fcc4", on_delete: :cascade
+ add_foreign_key "ci_pipelines", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_3d34ab2e06", on_delete: :nullify
add_foreign_key "ci_pipelines", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_262d4c2d19", on_delete: :nullify
add_foreign_key "ci_trigger_requests", "ci_triggers", column: "trigger_id", name: "fk_b8ec8b7245", on_delete: :cascade
- add_foreign_key "ci_trigger_schedules", "ci_triggers", column: "trigger_id", name: "fk_90a406cc94", on_delete: :cascade
add_foreign_key "ci_triggers", "users", column: "owner_id", name: "fk_e8e10d1964", on_delete: :cascade
+ add_foreign_key "container_repositories", "projects"
add_foreign_key "issue_assignees", "issues", on_delete: :cascade
add_foreign_key "issue_assignees", "users", on_delete: :cascade
- add_foreign_key "container_repositories", "projects"
add_foreign_key "issue_metrics", "issues", on_delete: :cascade
add_foreign_key "label_priorities", "labels", on_delete: :cascade
add_foreign_key "label_priorities", "projects", on_delete: :cascade