本文整理汇总了Golang中github.com/BurntSushi/migration.LimitedTx.Exec方法的典型用法代码示例。如果您正苦于以下问题:Golang LimitedTx.Exec方法的具体用法?Golang LimitedTx.Exec怎么用?Golang LimitedTx.Exec使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/BurntSushi/migration.LimitedTx
的用法示例。
在下文中一共展示了LimitedTx.Exec方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: AddUserToContainer
func AddUserToContainer(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE containers
ADD COLUMN process_user text DEFAULT '';
`)
return err
}
示例2: ReplaceBuildEventsIDWithEventID
func ReplaceBuildEventsIDWithEventID(tx migration.LimitedTx) error {
_, err := tx.Exec(`ALTER TABLE build_events ADD COLUMN event_id integer`)
if err != nil {
return err
}
startIDs := map[int]int{}
rows, err := tx.Query(`
SELECT build_id, min(id)
FROM build_events
GROUP BY build_id
`)
if err != nil {
return err
}
for rows.Next() {
var buildID, id int
err := rows.Scan(&buildID, &id)
if err != nil {
return err
}
startIDs[buildID] = id
}
err = rows.Close()
if err != nil {
return err
}
for buildID, id := range startIDs {
_, err := tx.Exec(`
UPDATE build_events
SET event_id = id - $2
WHERE build_id = $1
`, buildID, id)
if err != nil {
return err
}
}
_, err = tx.Exec(`ALTER TABLE build_events DROP COLUMN id`)
if err != nil {
return err
}
_, err = tx.Exec(`ALTER TABLE build_events ALTER COLUMN event_id SET NOT NULL`)
if err != nil {
return err
}
_, err = tx.Exec(`CREATE UNIQUE INDEX build_events_build_id_event_id ON build_events (build_id, event_id)`)
if err != nil {
return err
}
return nil
}
示例3: initial
func initial(tx migration.LimitedTx) error {
_, err := tx.Exec(`
CREATE TABLE pull_requests (
owner text NOT NULL,
repository text NOT NULL,
sha text NOT NULL
);
`)
if err != nil {
return err
}
_, err = tx.Exec(`
CREATE UNIQUE INDEX pull_requests_unique ON pull_requests (
owner,
repository,
sha
);
`)
if err != nil {
return err
}
return nil
}
示例4: AddIndexesToABunchOfStuff
func AddIndexesToABunchOfStuff(tx migration.LimitedTx) error {
_, err := tx.Exec(`
CREATE INDEX build_inputs_build_id_versioned_resource_id ON build_inputs (build_id, versioned_resource_id);
`)
if err != nil {
return err
}
_, err = tx.Exec(`
CREATE INDEX build_outputs_build_id_versioned_resource_id ON build_outputs (build_id, versioned_resource_id);
`)
if err != nil {
return err
}
_, err = tx.Exec(`
CREATE INDEX builds_job_id ON builds (job_id);
`)
if err != nil {
return err
}
_, err = tx.Exec(`
CREATE INDEX jobs_pipeline_id ON jobs (pipeline_id);
`)
if err != nil {
return err
}
_, err = tx.Exec(`
CREATE INDEX resources_pipeline_id ON resources (pipeline_id);
`)
return nil
}
示例5: DropCompletedFromBuildPreparation
func DropCompletedFromBuildPreparation(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE build_preparation
DROP COLUMN completed
`)
return err
}
示例6: RemoveVolumesWithExpiredWorkers
func RemoveVolumesWithExpiredWorkers(tx migration.LimitedTx) error {
_, err := tx.Exec(`
DELETE FROM volumes v
WHERE (SELECT COUNT(name) FROM workers w WHERE w.name = v.worker_name) = 0;
`)
return err
}
示例7: CleanUpMassiveUniqueConstraint
func CleanUpMassiveUniqueConstraint(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE containers
DROP CONSTRAINT IF EXISTS containers_worker_name_resource_id_check_type_check_source__key
`)
return err
}
示例8: MakeVolumesExpiresAtNullable
func MakeVolumesExpiresAtNullable(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE volumes
ALTER COLUMN expires_at DROP NOT NULL;
`)
return err
}
示例9: createTable
func (d dbVersion) createTable(tx migration.LimitedTx) error {
_, err := tx.Exec(d.CreateSQL)
if err == nil {
err = d.set(tx, 0)
}
return err
}
示例10: AddStepLocationToContainers
func AddStepLocationToContainers(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE containers ADD COLUMN step_location integer DEFAULT 0;
`)
return err
}
示例11: AddWorkingDirectoryToContainers
func AddWorkingDirectoryToContainers(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE containers ADD COLUMN working_directory text;
`)
return err
}
示例12: CascadePipelineDeletes
func CascadePipelineDeletes(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE build_events DROP CONSTRAINT build_events_build_id_fkey;
ALTER TABLE build_events ADD CONSTRAINT build_events_build_id_fkey FOREIGN KEY (build_id) REFERENCES builds (id) ON DELETE CASCADE;
ALTER TABLE build_outputs DROP CONSTRAINT build_outputs_build_id_fkey;
ALTER TABLE build_outputs ADD CONSTRAINT build_outputs_build_id_fkey FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE;
ALTER TABLE build_outputs DROP CONSTRAINT build_outputs_versioned_resource_id_fkey;
ALTER TABLE build_outputs ADD CONSTRAINT build_outputs_versioned_resource_id_fkey FOREIGN KEY (versioned_resource_id) REFERENCES versioned_resources(id) ON DELETE CASCADE;
ALTER TABLE build_inputs DROP CONSTRAINT build_inputs_build_id_fkey;
ALTER TABLE build_inputs ADD CONSTRAINT build_inputs_build_id_fkey FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE;
ALTER TABLE build_inputs DROP CONSTRAINT build_inputs_versioned_resource_id_fkey;
ALTER TABLE build_inputs ADD CONSTRAINT build_inputs_versioned_resource_id_fkey FOREIGN KEY (versioned_resource_id) REFERENCES versioned_resources(id) ON DELETE CASCADE;
ALTER TABLE jobs_serial_groups DROP CONSTRAINT fkey_job_id;
ALTER TABLE jobs_serial_groups ADD CONSTRAINT fkey_job_id FOREIGN KEY (job_id) REFERENCES jobs(id) ON DELETE CASCADE;
ALTER TABLE builds DROP CONSTRAINT fkey_job_id;
ALTER TABLE builds ADD CONSTRAINT fkey_job_id FOREIGN KEY (job_id) REFERENCES jobs(id) ON DELETE CASCADE;
ALTER TABLE versioned_resources DROP CONSTRAINT fkey_resource_id;
ALTER TABLE versioned_resources ADD CONSTRAINT fkey_resource_id FOREIGN KEY (resource_id) REFERENCES resources(id) ON DELETE CASCADE;
ALTER TABLE resources DROP CONSTRAINT resources_pipeline_id_fkey;
ALTER TABLE resources ADD CONSTRAINT resources_pipeline_id_fkey FOREIGN KEY (pipeline_id) REFERENCES pipelines(id) ON DELETE CASCADE;
ALTER TABLE jobs DROP CONSTRAINT jobs_pipeline_id_fkey;
ALTER TABLE jobs ADD CONSTRAINT jobs_pipeline_id_fkey FOREIGN KEY (pipeline_id) REFERENCES pipelines (id) ON DELETE CASCADE;
`)
return err
}
示例13: AddEnvVariablesToContainers
func AddEnvVariablesToContainers(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE containers ADD COLUMN env_variables text NOT NULL DEFAULT '[]';
`)
return err
}
示例14: DefaultRegion
// DefaultRegion will insert a default region into the database with the
// name "default", no start, and no end time.
func (m Migrator) DefaultRegion(tx migration.LimitedTx) error {
_, err := tx.Exec(
`INSERT INTO regions(name) VALUES(?)`,
"default",
)
return err
}
示例15: AddModifiedTimeToBuildInputs
func AddModifiedTimeToBuildInputs(tx migration.LimitedTx) error {
_, err := tx.Exec(`
ALTER TABLE build_inputs
ADD COLUMN modified_time timestamp NOT NULL DEFAULT now();
`)
return err
}