Commit ec8e2463 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Remove db/ci

parent 7ba5e433
class CreateProjects < ActiveRecord::Migration
def up
create_table :projects do |t|
t.string :name, null: false
t.string :path, null: false
t.integer :timeout, null: false, default: 1800
t.text :scripts, null: false
t.timestamps
end
end
def down
end
end
class CreateBuilds < ActiveRecord::Migration
def up
create_table :builds do |t|
t.integer :project_id
t.string :commit_ref
t.string :status
t.datetime :finished_at
t.text :trace
t.timestamps
end
end
def down
end
end
class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table(:users) do |t|
## Database authenticatable
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, :default => 0
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable
## Lockable
# t.integer :failed_attempts, :default => 0 # Only if lock strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at
## Token authenticatable
# t.string :authentication_token
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
end
class AddTokenToProject < ActiveRecord::Migration
def change
add_column :projects, :token, :string, null: true
end
end
class AddRefFunctionality < ActiveRecord::Migration
def change
rename_column :builds, :commit_ref, :ref
add_column :builds, :sha, :string
add_column :projects, :default_ref, :string
end
def down
end
end
class AddGitlabUrlToProject < ActiveRecord::Migration
def change
add_column :projects, :gitlab_url, :string, null: true
end
end
class AddStartedAtToBuild < ActiveRecord::Migration
def change
add_column :builds, :started_at, :datetime, null: true
end
end
class IncreateTraceColunmLimit < ActiveRecord::Migration
def up
change_column :builds, :trace, :text, :limit => 1073741823
end
def down
end
end
class AddTmpFileToBuild < ActiveRecord::Migration
def change
add_column :builds, :tmp_file, :string
end
end
class AddBeforeShaToBuild < ActiveRecord::Migration
def change
add_column :builds, :before_sha, :string, null: true
end
end
class AddScheduleToProjects < ActiveRecord::Migration
def change
add_column :projects, :always_build, :boolean, default: false, null: false
add_column :projects, :polling_interval, :string, null: true
end
end
class ChangeScheduleInvertal < ActiveRecord::Migration
def up
if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
connection.execute(%q{
ALTER TABLE projects
ALTER COLUMN polling_interval
TYPE integer USING CAST(polling_interval AS integer)
})
else
change_column :projects, :polling_interval, :integer, null: true
end
end
def down
if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
connection.execute(%q{
ALTER TABLE projects
ALTER COLUMN polling_interval
TYPE integer USING CAST(polling_interval AS varchar)
})
else
change_column :projects, :polling_interval, :string, null: true
end
end
end
class AddPublicFlagToProject < ActiveRecord::Migration
def change
add_column :projects, :public, :boolean, null: false, default: false
end
end
class AddDataFieldToBuild < ActiveRecord::Migration
def change
add_column :builds, :push_data, :text
end
end
class RemovePathFieldFromProject < ActiveRecord::Migration
def up
remove_column :projects, :path
end
def down
end
end
class CreateRunners < ActiveRecord::Migration
def change
create_table :runners do |t|
t.string :token
t.text :public_key
t.timestamps
end
end
end
class AddRunnerIdToBuild < ActiveRecord::Migration
def change
add_column :builds, :runner_id, :integer
end
end
class RemoveUsersTable < ActiveRecord::Migration
def up
drop_table :users
end
end
class AddMoreFieldsToProject < ActiveRecord::Migration
def change
add_column :projects, :ssh_url_to_repo, :string
end
end
class CreateRunnerProjects < ActiveRecord::Migration
def change
create_table :runner_projects do |t|
t.integer :runner_id, null: false
t.integer :project_id, null: false
t.timestamps
end
end
end
class AddProjectGitlabIdToProject < ActiveRecord::Migration
def change
add_column :projects, :gitlab_id, :integer
end
end
class AddIndexProjectIdToBuilds < ActiveRecord::Migration
def change
add_index :builds, :project_id
end
end
class AddDescriptionToRunner < ActiveRecord::Migration
def change
add_column :runners, :description, :string
end
end
class AddDbIndex < ActiveRecord::Migration
def change
add_index :builds, :runner_id
add_index :runner_projects, :runner_id
add_index :runner_projects, :project_id
end
end
class ChangePushDataLimit < ActiveRecord::Migration
def change
change_column :builds, :push_data, :text, :limit => 16777215
end
end
class AddSessionsTable < ActiveRecord::Migration
def change
create_table :sessions do |t|
t.string :session_id, :null => false
t.text :data
t.timestamps
end
add_index :sessions, :session_id
add_index :sessions, :updated_at
end
end
class AddAllowGitFetchToProject < ActiveRecord::Migration
def change
add_column :projects, :allow_git_fetch, :boolean, default: true, null: false
end
end
class AddEmailNotificationFieldsToProject < ActiveRecord::Migration
def change
add_column :projects, :email_recipients, :string, default: '', null: false
add_column :projects, :email_add_committer, :boolean, default: true, null: false
add_column :projects, :email_all_broken_builds, :boolean, default: true, null: false
end
end
class RenameProjectFields < ActiveRecord::Migration
def change
rename_column :projects, :email_all_broken_builds, :email_only_broken_builds
end
end
class CreateWebHook < ActiveRecord::Migration
def change
create_table :web_hooks do |t|
t.string :url, null: false
t.integer :project_id, null: false
t.timestamps
end
end
end
class RemovePublicKeyFromRunner < ActiveRecord::Migration
def change
remove_column :runners, :public_key
end
end
class CreateCommitsFromBuilds < ActiveRecord::Migration
def change
create_table :commits do |t|
t.integer :project_id
t.string :ref, nil: false
t.string :sha, nil: false
t.string :before_sha, nil: false
t.text :push_data, nil: false
t.timestamps
end
add_column :builds, :commit_id, :integer
# Remove commit data from builds
#remove_column :builds, :project_id, :integer
#remove_column :builds, :ref, :string
#remove_column :builds, :sha, :string
#remove_column :builds, :before_sha, :string
#remove_column :builds, :push_data, :text
end
end
class AddSkipRefsToProjects < ActiveRecord::Migration
def change
add_column :projects, :skip_refs, :string
end
end
class AddCoverageParser < ActiveRecord::Migration
def change
add_column :projects, :coverage_regex, :string
end
end
class AddCoverageToBuild < ActiveRecord::Migration
def change
add_column :builds, :coverage, :float
end
end
class AddShaIndexToBuild < ActiveRecord::Migration
def change
add_index :builds, :sha
add_index :builds, [:project_id, :sha]
end
end
class MigrateBuildToCommits < ActiveRecord::Migration
def change
execute <<eos
INSERT INTO commits ( sha, project_id, ref, before_sha, push_data )
SELECT sha, project_id, ref, before_sha, push_data FROM builds
WHERE id IN (SELECT MAX(id) FROM builds GROUP BY sha)
eos
if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
execute <<eos
UPDATE builds
SET commit_id = commits.id
FROM commits
WHERE commits.sha = builds.sha
eos
else
execute "UPDATE builds b, commits c SET b.commit_id = c.id WHERE c.sha = b.sha"
end
end
end
class AddCommitIndicies < ActiveRecord::Migration
def change
add_index :commits, :project_id
add_index :commits, :sha, length: 6
add_index :commits, [:project_id, :sha]
add_index :builds, :commit_id
add_index :builds, [:project_id, :commit_id]
end
end
class AddParallelToBuild < ActiveRecord::Migration
def change
create_table :jobs do |t|
t.integer :project_id, null: false
t.text :commands
t.boolean :active, null: false, default: true
t.timestamps
end
add_index :jobs, :project_id
end
end
class AddCommandsToBuild < ActiveRecord::Migration
def change
add_column :builds, :commands, :text
end
end
class AddJobIdToBuild < ActiveRecord::Migration
def change
add_column :builds, :job_id, :integer
end
end
class MigrateJobs < ActiveRecord::Migration
def up
Project.find_each(batch_size: 100) do |project|
job = project.jobs.create(commands: project.scripts)
project.builds.order('id DESC').limit(10).update_all(job_id: job.id)
end
end
def down
Job.destroy_all
end
end
class AddNameToJob < ActiveRecord::Migration
def change
add_column :jobs, :name, :string
end
end
class RemoveScriptsFromProject < ActiveRecord::Migration
def change
remove_column :projects, :scripts
end
end
\ No newline at end of file
class RemoveInvalidBuild < ActiveRecord::Migration
def change
execute "DELETE FROM builds WHERE commit_id is NULL"
end
end
class CreateService < ActiveRecord::Migration
def change
create_table :services, force: true do |t|
t.string :type
t.string :title
t.integer :project_id, null: false
t.datetime :created_at
t.datetime :updated_at
t.boolean :active, default: false, null: false
t.text :properties
end
add_index :services, [:project_id], name: :index_services_on_project_id, using: :btree
end
end
class AddFilterToJobs < ActiveRecord::Migration
def change
add_column :jobs, :build_branches, :boolean, default: true, null: false
add_column :jobs, :build_tags, :boolean, default: false, null: false
end
end
# This migration comes from acts_as_taggable_on_engine (originally 1)
class ActsAsTaggableOnMigration < ActiveRecord::Migration
def self.up
create_table :tags do |t|
t.string :name
end
create_table :taggings do |t|
t.references :tag
# You should make sure that the column created is
# long enough to store the required class names.
t.references :taggable, polymorphic: true
t.references :tagger, polymorphic: true
# Limit is created to prevent MySQL error on index
# length for MyISAM table type: http://bit.ly/vgW2Ql
t.string :context, limit: 128
t.datetime :created_at
end
add_index :taggings, :tag_id
add_index :taggings, [:taggable_id, :taggable_type, :context]
end
def self.down
drop_table :taggings
drop_table :tags
end
end
# This migration comes from acts_as_taggable_on_engine (originally 2)
class AddMissingUniqueIndices < ActiveRecord::Migration
def self.up
add_index :tags, :name, unique: true
remove_index :taggings, :tag_id
remove_index :taggings, [:taggable_id, :taggable_type, :context]
add_index :taggings,
[:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
unique: true, name: 'taggings_idx'
end
def self.down
remove_index :tags, :name
remove_index :taggings, name: 'taggings_idx'
add_index :taggings, :tag_id
add_index :taggings, [:taggable_id, :taggable_type, :context]
end
end
# This migration comes from acts_as_taggable_on_engine (originally 3)
class AddTaggingsCounterCacheToTags < ActiveRecord::Migration
def self.up
add_column :tags, :taggings_count, :integer, default: 0
ActsAsTaggableOn::Tag.reset_column_information
ActsAsTaggableOn::Tag.find_each do |tag|
ActsAsTaggableOn::Tag.reset_counters(tag.id, :taggings)
end
end
def self.down
remove_column :tags, :taggings_count
end
end
# This migration comes from acts_as_taggable_on_engine (originally 4)
class AddMissingTaggableIndex < ActiveRecord::Migration
def self.up
add_index :taggings, [:taggable_id, :taggable_type, :context]
end
def self.down
remove_index :taggings, [:taggable_id, :taggable_type, :context]
end
end
class BuildMissingServices < ActiveRecord::Migration
def up
Project.find_each do |project|
# Slack service creation
slack_service = select_one("SELECT id FROM services WHERE type='SlackService' AND project_id = #{project.id}")
unless slack_service
execute("INSERT INTO services (type, project_id, active, properties, created_at, updated_at) \
VALUES ('SlackService', '#{project.id}', false, '{}', NOW(), NOW())")
end
# Mail service creation
mail_service = select_one("SELECT id FROM services WHERE type='MailService' AND project_id = #{project.id}")
unless mail_service
execute("INSERT INTO services (type, project_id, active, properties, created_at, updated_at) \
VALUES ('MailService', '#{project.id}', true, '{}', NOW(), NOW())")
end
end
end
end
class AddJobTypeToJob < ActiveRecord::Migration
def change
add_column :jobs, :job_type, :string, default: 'parallel'
add_column :jobs, :refs, :string
end
end
class AddContactedAtToRunner < ActiveRecord::Migration
def change
add_column :runners, :contacted_at, :datetime, null: true
end
end
class AddActiveToRunner < ActiveRecord::Migration
def change
add_column :runners, :active, :boolean, null: false, default: true
end
end
class RenameCommitterToPusher < ActiveRecord::Migration
def change
rename_column :projects, :email_add_committer, :email_add_pusher
end
end
class CreateEventTable < ActiveRecord::Migration
def change
create_table :events do |t|
t.integer :project_id
t.integer :user_id
t.integer :is_admin
t.text :description
t.timestamps
t.index :created_at
t.index :is_admin
t.index :project_id
end
end
end
class AddSettingsForSharedRunners < ActiveRecord::Migration
def change
add_column :projects, :shared_runners_enabled, :boolean, default: false
add_column :runners, :is_shared, :boolean, default: false
end
end
class MigrateSharedRunners < ActiveRecord::Migration
def up
#all shared runners should remain to be shared
execute("UPDATE runners SET is_shared = true WHERE id NOT IN (SELECT runner_id FROM runner_projects)");
Project.update_all(shared_runners_enabled: true)
end
def down
end
end
class DisableSharedRunners < ActiveRecord::Migration
def up
execute("UPDATE projects SET shared_runners_enabled = false WHERE id IN (SELECT project_id FROM runner_projects)");
end
def down
end
end
class AddDeletedAtToJobs < ActiveRecord::Migration
def change
add_column :jobs, :deleted_at, :datetime
add_index :jobs, :deleted_at
end
end
class CleanupTheBuildModel < ActiveRecord::Migration
def change
remove_column :builds, :push_data, :text
remove_column :builds, :before_sha, :string
remove_column :builds, :ref, :string
remove_column :builds, :sha, :string
remove_column :builds, :tmp_file, :string
end
end
class MigrateUrlToPath < ActiveRecord::Migration
def up
select_all("SELECT id, gitlab_url FROM projects").each do |project|
path = project['gitlab_url'].sub(/.*\/(.*\/.*)$/, '\1')
execute("UPDATE projects SET gitlab_url = '#{path}' WHERE id = '#{project['id']}'")
end
end
def down
end
end
class RenameGitlabUrlToPath < ActiveRecord::Migration
def change
rename_column :projects, :gitlab_url, :path
end
end
class AddInfoFieldsToRunner < ActiveRecord::Migration
def change
add_column :runners, :name, :string
add_column :runners, :version, :string
add_column :runners, :revision, :string
add_column :runners, :platform, :string
add_column :runners, :architecture, :string
end
end
class AddFieldsToBuilds < ActiveRecord::Migration
def change
add_column :builds, :name, :string
add_column :builds, :deploy, :boolean, default: false
end
end
class MoveJobNameToBuild < ActiveRecord::Migration
def up
select_all("SELECT id, name FROM jobs").each do |job|
execute("UPDATE builds SET name = '#{quote_string(job["name"])}' WHERE job_id = #{job["id"]}")
end
end
def down
end
end
class AddTagToCommits < ActiveRecord::Migration
def change
add_column :commits, :tag, :boolean, default: false
end
end
class AddYamlToProjects < ActiveRecord::Migration
def up
add_column :projects, :generated_yaml_config, :text
end
def down
remove_column :projects, :generated_yaml_config
end
end
# Migration tested on MySQL and PostgreSQL.
# Can be performed online without errors.
# This migration will loop through all projects and jobs, so it can take some time.
class MigrateJobsToYaml < ActiveRecord::Migration
def up
select_all("SELECT * FROM projects").each do |project|
config = {}
concatenate_expression = if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'
"string_agg(tags.name, ',')"
else
"GROUP_CONCAT(tags.name SEPARATOR ',')"
end
sql = "SELECT j.*, #{concatenate_expression} tags
FROM jobs j
LEFT JOIN taggings tgs ON j.id = tgs.taggable_id AND tgs.taggable_type = 'Job'
LEFT JOIN tags ON tgs.tag_id = tags.id
WHERE project_id = #{project['id']}
AND active = true
AND job_type = 'parallel'
GROUP BY j.id"
# skip_refs migrate
skip_refs = []
if project["skip_refs"].present?
skip_refs = project["skip_refs"].split(",").map(&:strip).select{|ref| ref =~ /^[\w-]*\Z/ }
end
# Create Jobs
select_all(sql).each do |job|
config[job["name"].to_s] = {
script: job["commands"] && job["commands"].split("\n").map(&:strip),
tags: job["tags"] && job["tags"].split(",").map(&:strip)
}
except = build_except_param(parse_boolean_value(job["build_branches"]), parse_boolean_value(job["build_tags"]))
except = except + skip_refs
if except.any?
config[job["name"].to_s][:except] = except
end
end
# Create Deploy Jobs
select_all(sql.sub("parallel", 'deploy')).each do |job|
config[job["name"].to_s] = {
script: job["commands"] && job["commands"].split("\n").map(&:strip),
type: "deploy",
tags: job["tags"] && job["tags"].split(",").map(&:strip)
}
if job["refs"].present?
config[job["name"].to_s][:only] = job["refs"].split(",").map(&:strip)
else
except = build_except_param(parse_boolean_value(job["build_branches"]), parse_boolean_value(job["build_tags"]))
except = except + skip_refs
if except.any?
config[job["name"].to_s][:except] = except
end
end
end
yaml_config = YAML.dump(config.deep_stringify_keys)
yaml_config.sub!("---", "# This file is generated by GitLab CI")
execute("UPDATE projects SET generated_yaml_config = '#{quote_string(yaml_config)}' WHERE projects.id = #{project["id"]}")
end
end
def down
end
private
def parse_boolean_value(value)
[ true, 1, '1', 't', 'T', 'true', 'TRUE', 'on', 'ON' ].include?(value)
end
def build_except_param(branches, tags)
unless branches
return ["branches"]
end
unless tags
return ["tags"]
end
[]
end
end
class ChangeDefaultBuildTimeout < ActiveRecord::Migration
def up
change_column :projects, :timeout, :integer, default: 3600, null: false
end
def down
change_column :projects, :timeout, :integer, default: 1800, null: false
end
end
class CreateVariables < ActiveRecord::Migration
def change
create_table :variables do |t|
t.integer :project_id, null: false
t.string :key
t.text :value
end
add_index :variables, :project_id
end
end
\ No newline at end of file
class AddErrorsToCommit < ActiveRecord::Migration
def change
add_column :commits, :yaml_errors, :text
end
end
\ No newline at end of file
class AddOptionsToBuild < ActiveRecord::Migration
def change
add_column :builds, :options, :text
end
end
class AddEncryptedValueToVariables < ActiveRecord::Migration
def change
add_column :variables, :encrypted_value, :text
add_column :variables, :encrypted_value_salt, :string
add_column :variables, :encrypted_value_iv, :string
end
end
class EncryptVariables < ActiveRecord::Migration
def up
Variable.find_each do |variable|
variable.update(value: variable.read_attribute(:value)) unless variable.encrypted_value
end
end
def down
end
end
class AddAllowFailureToBuilds < ActiveRecord::Migration
def change
add_column :builds, :allow_failure, :boolean, default: false, null: false
end
end
class AddJobTypeToBuilds < ActiveRecord::Migration
def change
add_column :builds, :job_type, :string
end
end
class MigrateDeployToJobTypeForBuilds < ActiveRecord::Migration
def up
execute("UPDATE builds SET job_type='test' WHERE NOT deploy")
execute("UPDATE builds SET job_type='deploy' WHERE deploy")
end
end
class TruncateSessions < ActiveRecord::Migration
def up
execute('DELETE FROM sessions')
end
def down
execute('DELETE FROM sessions')
end
end
class CreateApplicationSettings < ActiveRecord::Migration
def change
create_table :application_settings do |t|
t.boolean :all_broken_builds
t.boolean :add_pusher
t.timestamps
end
end
end
class RenameJobTypeToStageBuilds < ActiveRecord::Migration
def up
rename_column :builds, :job_type, :stage
end
def down
rename_column :builds, :stage, :job_type
end
end
class AddCommittedAtToCommits < ActiveRecord::Migration
def up
add_column :commits, :committed_at, :timestamp
add_index :commits, [:project_id, :committed_at]
end
end
class UpdateCommittedAtWithCreatedAt < ActiveRecord::Migration
def up
execute('UPDATE commits SET committed_at=created_at WHERE committed_at IS NULL')
end
end
class CreateTrigger < ActiveRecord::Migration
def up
create_table :triggers do |t|
t.string :token, null: true
t.integer :project_id, null: false
t.datetime :deleted_at
t.timestamps
end
add_index :triggers, :deleted_at
end
end
class AddTriggerToBuilds < ActiveRecord::Migration
def up
add_column :builds, :trigger_request_id, :integer
end
end
class CreateTriggerRequest < ActiveRecord::Migration
def change
create_table :trigger_requests do |t|
t.integer :trigger_id, null: false
t.text :variables
t.timestamps
end
end
end
class AddCommitIdToTriggerRequests < ActiveRecord::Migration
def up
add_column :trigger_requests, :commit_id, :integer
end
def down
end
end
# encoding: UTF-8
# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
#
# Note that this schema.rb definition is the authoritative source for your
# database schema. If you need to create the application database on another
# system, you should be using db:schema:load, not running all the migrations
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
# you'll amass, the slower it'll run and the greater likelihood for issues).
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20150819162227) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "ci_application_settings", force: true do |t|
t.boolean "all_broken_builds"
t.boolean "add_pusher"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "ci_builds", force: true do |t|
t.integer "project_id"
t.string "status"
t.datetime "finished_at"
t.text "trace"
t.datetime "created_at"
t.datetime "updated_at"
t.datetime "started_at"
t.integer "runner_id"
t.float "coverage"
t.integer "commit_id"
t.text "commands"
t.integer "job_id"
t.string "name"
t.boolean "deploy", default: false
t.text "options"
t.boolean "allow_failure", default: false, null: false
t.string "stage"
t.integer "trigger_request_id"
end
add_index "ci_builds", ["commit_id"], name: "index_builds_on_commit_id", using: :btree
add_index "ci_builds", ["project_id", "commit_id"], name: "index_builds_on_project_id_and_commit_id", using: :btree
add_index "ci_builds", ["project_id"], name: "index_builds_on_project_id", using: :btree
add_index "ci_builds", ["runner_id"], name: "index_builds_on_runner_id", using: :btree
create_table "ci_commits", force: true do |t|
t.integer "project_id"
t.string "ref"
t.string "sha"
t.string "before_sha"
t.text "push_data"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "tag", default: false
t.text "yaml_errors"
t.datetime "committed_at"
end
add_index "ci_commits", ["project_id", "committed_at"], name: "index_commits_on_project_id_and_committed_at", using: :btree
add_index "ci_commits", ["project_id", "sha"], name: "index_commits_on_project_id_and_sha", using: :btree
add_index "ci_commits", ["project_id"], name: "index_commits_on_project_id", using: :btree
add_index "ci_commits", ["sha"], name: "index_commits_on_sha", using: :btree
create_table "ci_events", force: true do |t|
t.integer "project_id"
t.integer "user_id"
t.integer "is_admin"
t.text "description"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "ci_events", ["created_at"], name: "index_events_on_created_at", using: :btree
add_index "ci_events", ["is_admin"], name: "index_events_on_is_admin", using: :btree
add_index "ci_events", ["project_id"], name: "index_events_on_project_id", using: :btree
create_table "ci_jobs", force: true do |t|
t.integer "project_id", null: false
t.text "commands"
t.boolean "active", default: true, null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "name"
t.boolean "build_branches", default: true, null: false
t.boolean "build_tags", default: false, null: false
t.string "job_type", default: "parallel"
t.string "refs"
t.datetime "deleted_at"
end
add_index "ci_jobs", ["deleted_at"], name: "index_jobs_on_deleted_at", using: :btree
add_index "ci_jobs", ["project_id"], name: "index_jobs_on_project_id", using: :btree
create_table "ci_projects", force: true do |t|
t.string "name", null: false
t.integer "timeout", default: 3600, null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "token"
t.string "default_ref"
t.string "path"
t.boolean "always_build", default: false, null: false
t.integer "polling_interval"
t.boolean "public", default: false, null: false
t.string "ssh_url_to_repo"
t.integer "gitlab_id"
t.boolean "allow_git_fetch", default: true, null: false
t.string "email_recipients", default: "", null: false
t.boolean "email_add_pusher", default: true, null: false
t.boolean "email_only_broken_builds", default: true, null: false
t.string "skip_refs"
t.string "coverage_regex"
t.boolean "shared_runners_enabled", default: false
t.text "generated_yaml_config"
end
create_table "ci_runner_projects", force: true do |t|
t.integer "runner_id", null: false
t.integer "project_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "ci_runner_projects", ["project_id"], name: "index_runner_projects_on_project_id", using: :btree
add_index "ci_runner_projects", ["runner_id"], name: "index_runner_projects_on_runner_id", using: :btree
create_table "ci_runners", force: true do |t|
t.string "token"
t.datetime "created_at"
t.datetime "updated_at"
t.string "description"
t.datetime "contacted_at"
t.boolean "active", default: true, null: false
t.boolean "is_shared", default: false
t.string "name"
t.string "version"
t.string "revision"
t.string "platform"
t.string "architecture"
end
create_table "ci_services", force: true do |t|
t.string "type"
t.string "title"
t.integer "project_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "active", default: false, null: false
t.text "properties"
end
add_index "ci_services", ["project_id"], name: "index_services_on_project_id", using: :btree
create_table "ci_sessions", force: true do |t|
t.string "session_id", null: false
t.text "data"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "ci_sessions", ["session_id"], name: "index_sessions_on_session_id", using: :btree
add_index "ci_sessions", ["updated_at"], name: "index_sessions_on_updated_at", using: :btree
create_table "ci_taggings", force: true do |t|
t.integer "tag_id"
t.integer "taggable_id"
t.string "taggable_type"
t.integer "tagger_id"
t.string "tagger_type"
t.string "context", limit: 128
t.datetime "created_at"
end
add_index "ci_taggings", ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true, using: :btree
add_index "ci_taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree
create_table "ci_tags", force: true do |t|
t.string "name"
t.integer "taggings_count", default: 0
end
add_index "ci_tags", ["name"], name: "index_tags_on_name", unique: true, using: :btree
create_table "ci_trigger_requests", force: true do |t|
t.integer "trigger_id", null: false
t.text "variables"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "commit_id"
end
create_table "ci_triggers", force: true do |t|
t.string "token"
t.integer "project_id", null: false
t.datetime "deleted_at"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "ci_triggers", ["deleted_at"], name: "index_triggers_on_deleted_at", using: :btree
create_table "ci_variables", force: true do |t|
t.integer "project_id", null: false
t.string "key"
t.text "value"
t.text "encrypted_value"
t.string "encrypted_value_salt"
t.string "encrypted_value_iv"
end
add_index "ci_variables", ["project_id"], name: "index_variables_on_project_id", using: :btree
create_table "ci_web_hooks", force: true do |t|
t.string "url", null: false
t.integer "project_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment