Thật may là anh đã từng làm migrate rồi, anh viết 1 chương trình để chạy migrate em ạ, em tham khảo, anh viết bằng java, em có thể convert sang php nhé.
public class Migrator {
@Data
public static class Record {
private long id;
// data
}
public static void main(String[] args) {
int limit = 300;
long lastMigratedId = getLastMigratedId();
Logger logger = LoggerFactory.getLogger(Migrator.class);
logger.info("migration start");
while (true) {
try {
logger.info(
"get records to migrate, limit: {}, last id: {}",
limit,
lastMigratedId
);
List<Record> records = getRecordsToMigrateFromDatabaseA(
lastMigratedId,
limit
);
logger.info(
"done get records to migrate, records.size: {}",
records.size()
);
saveRecordsToDatabaseB(records);
logger.info("saved records");
if (records.size() < limit) {
break;
}
saveLastMigratedId(records.get(records.size() - 1).getId());
} catch (Exception e) {
logger.error("migrate failed", e);
break;
}
}
logger.info("migration done");
}
}