FIX ci db init
This commit is contained in:
parent
a904adaaa0
commit
7750ed18d7
|
@ -6,6 +6,10 @@ class Ci::CloudAccountsController < Ci::BaseController
|
|||
before_action :load_repo, only: %i[activate]
|
||||
before_action :find_cloud_account, only: %i[show]
|
||||
before_action :validate_params!, only: %i[create bind]
|
||||
before_action only: %i[create bind] do
|
||||
master_db = true
|
||||
connect_to_ci_database(master_db)
|
||||
end
|
||||
|
||||
def create
|
||||
ActiveRecord::Base.transaction do
|
||||
|
|
|
@ -22,7 +22,10 @@ module Ci::CloudAccountManageable
|
|||
redirect_uri: gitea_oauth['redirect_uris'],
|
||||
gitea_oauth_id: gitea_oauth['id'],
|
||||
user_id: current_user.id)
|
||||
oauth.save
|
||||
oauth.save!
|
||||
|
||||
# 初始化ci端数据库
|
||||
ci_db_structure!(@connection, "#{current_user.login}_drone")
|
||||
|
||||
rpc_secret = SecureRandom.hex 16
|
||||
logger.info "######### rpc_secret: #{rpc_secret}"
|
||||
|
@ -43,25 +46,7 @@ module Ci::CloudAccountManageable
|
|||
redirect_url = "#{cloud_account.drone_url}/login"
|
||||
logger.info "######### redirect_url: #{redirect_url}"
|
||||
|
||||
if result && !result.blank?
|
||||
# Ci::Schema.execute(username, password, port, host, database)
|
||||
# con_result = @connection.execute(Ci::Schema.statement)
|
||||
|
||||
Ci::Schema.sqls.split(';').map(&:strip).each do |sql|
|
||||
con_result = @connection.execute(sql)
|
||||
Rails.logger.info "=============> ci create tabels result: #{con_result}"
|
||||
end
|
||||
|
||||
|
||||
# if con_result.present?
|
||||
# puts "==========> connection con_result: #{con_result}"
|
||||
# else
|
||||
# puts "----------创建ci数据库失败"
|
||||
# end
|
||||
cloud_account
|
||||
else
|
||||
nil
|
||||
end
|
||||
result && !result.blank? ? cloud_account : nil
|
||||
end
|
||||
|
||||
def unbind_account!
|
||||
|
|
|
@ -5,7 +5,7 @@ module Ci::DbConnectable
|
|||
end
|
||||
|
||||
# Dynamically sets the database connection.
|
||||
def connect_to_ci_database
|
||||
def connect_to_ci_database(master_db=false)
|
||||
config = Rails.application.config_for(:configuration).symbolize_keys!
|
||||
db_config = config[:ci_db_server].symbolize_keys!
|
||||
raise 'ci database config missing' if db_config.blank?
|
||||
|
@ -15,10 +15,22 @@ module Ci::DbConnectable
|
|||
username: db_config[:username],
|
||||
password: db_config[:password],
|
||||
port: db_config[:port],
|
||||
database: "#{current_user.login}_drone"
|
||||
database: master_db === true ? db_config[:database] : "#{current_user.login}_#{db_config[:database]}"
|
||||
}
|
||||
db_params = Ci::Database.get_connection_params(req_params)
|
||||
@connection = Ci::Database.set_connection(db_params)
|
||||
end
|
||||
|
||||
def ci_db_structure!(connection, database)
|
||||
result = connection.execute("CREATE DATABASE #{database}")
|
||||
return false unless result.present?
|
||||
|
||||
# Ci::Schema.execute(username, password, port, host, database)
|
||||
# con_result = @connection.execute(Ci::Schema.statement)
|
||||
|
||||
Ci::Schema.statement.split(';').map(&:strip).each do |sql|
|
||||
con_result = @connection.execute(sql)
|
||||
Rails.logger.info "=============> ci create tabels result: #{con_result}"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue