migrationSource function

String migrationSource(
  1. Migration migration
)

Emits a reviewed migration and its fixed fingerprint as ordinary Dart values. Formatting/comments are not part of the fingerprint; SQL and operation data are.

Implementation

String migrationSource(Migration migration) =>
    '''
// Review before applying. Applied migrations must remain unchanged.
import 'package:orm/migrate.dart';

const migrationChecksum = ${_dartValue(migration.checksum)};
final migration = Migration.steps(
  ${_dartValue(migration.id)},
  [${migration.steps.map(_stepSource).join(', ')}],
  dialect: SqlDialect.${migration.dialect.name},
  ${migration.previous == null ? '' : 'previous: ${_dartValue(migration.previous)},'}
  ${migration.snapshot == null ? '' : 'snapshot: _schema,'}
);
${migration.snapshot == null ? '' : '\nfinal _schema = ${_snapshotSource(migration.snapshot!)};'}
''';