handle method
Called automatically before executing the command. You can override to do pre-validation or setup.
Implementation
@override
Future<void> handle(List<String> args) async {
final tableName = argResults?['name'] as String?;
if (tableName == null || tableName.trim().isEmpty) {
logger.error('❌ Usage: dart run khadem make:migration --name=likes');
exitCode = 1;
return;
}
final timestamp = DateTime.now().millisecondsSinceEpoch;
final migrationName = 'create_${tableName}_table';
final className = CliNaming.toPascalCase(migrationName);
final file =
File('lib/database/migrations/${timestamp}_$migrationName.dart');
await file.create(recursive: true);
await file.writeAsString(_migrationStub(className, tableName));
logger.info('✅ Migration created: ${file.path}');
await _updateMigrationsFile();
logger.info('🔄 migrations.dart updated successfully.');
exitCode = 0;
return;
}