Skip to content

Migrate the machine Mongo collections to the new Serval database #927

@pmachapman

Description

@pmachapman

This needs to be done using mongosh when the new monolith is deployed.

To perform this task locally:

db.adminCommand({
  renameCollection: "machine.translation_engines",
  to: "serval.machine.translation_engines"
});
db.adminCommand({
  renameCollection: "machine.word_alignment_engines",
  to: "serval.machine.word_alignment_engines"
});
db.adminCommand({
  renameCollection: "machine.train_segment_pairs",
  to: "serval.machine.train_segment_pairs"
});
db.adminCommand({
  renameCollection: "machine.locks",
  to: "serval.machine.locks"
});

External QA:

db.adminCommand({
  renameCollection: "qa_machine.translation_engines",
  to: "qa_serval.machine.translation_engines"
});
db.adminCommand({
  renameCollection: "qa_machine.word_alignment_engines",
  to: "qa_serval.machine.word_alignment_engines"
});
db.adminCommand({
  renameCollection: "qa_machine.train_segment_pairs",
  to: "qa_serval.machine.train_segment_pairs"
});
db.adminCommand({
  renameCollection: "qa_machine.locks",
  to: "qa_serval.machine.locks"
});

Prod:

db.adminCommand({
  renameCollection: "prod_machine.translation_engines",
  to: "prod_serval.machine.translation_engines"
});
db.adminCommand({
  renameCollection: "prod_machine.word_alignment_engines",
  to: "prod_serval.machine.word_alignment_engines"
});
db.adminCommand({
  renameCollection: "prod_machine.train_segment_pairs",
  to: "prod_serval.machine.train_segment_pairs"
});
db.adminCommand({
  renameCollection: "prod_machine.locks",
  to: "prod_serval.machine.locks"
});

These commands have to be run using mongosh.

If an error "do not have permission to rename collections across dbs" occurs, try this instead:

Internal QA:

db.getSiblingDB("machine").translation_engines.aggregate([
  { $match: {} },
  { $out: "serval.translation_engines" }
]);
db.getSiblingDB("machine").word_alignment_engines.aggregate([
  { $match: {} },
  { $out: "serval.word_alignment_engines" }
]);
db.getSiblingDB("machine").train_segment_pairs.aggregate([
  { $match: {} },
  { $out: "serval.train_segment_pairs" }
]);
db.getSiblingDB("machine").locks.aggregate([
  { $match: {} },
  { $out: "serval.locks" }
]);

External QA:

db.getSiblingDB("qa_machine").translation_engines.aggregate([
  { $match: {} },
  { $out: "qa_serval.translation_engines" }
]);
db.getSiblingDB("qa_machine").word_alignment_engines.aggregate([
  { $match: {} },
  { $out: "qa_serval.word_alignment_engines" }
]);
db.getSiblingDB("qa_machine").train_segment_pairs.aggregate([
  { $match: {} },
  { $out: "qa_serval.train_segment_pairs" }
]);
db.getSiblingDB("qa_machine").locks.aggregate([
  { $match: {} },
  { $out: "qa_serval.locks" }
]);

Prod:

db.getSiblingDB("prod_machine").translation_engines.aggregate([
  { $match: {} },
  { $out: "prod_serval.translation_engines" }
]);
db.getSiblingDB("prod_machine").word_alignment_engines.aggregate([
  { $match: {} },
  { $out: "prod_serval.word_alignment_engines" }
]);
db.getSiblingDB("prod_machine").train_segment_pairs.aggregate([
  { $match: {} },
  { $out: "prod_serval.train_segment_pairs" }
]);
db.getSiblingDB("prod_machine").locks.aggregate([
  { $match: {} },
  { $out: "prod_serval.locks" }
]);

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

Status

👀 In review

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions