jetzig/cli/commands/generate/migration.zig
Bob Farrell 1c2cbaca77 WIP
2024-11-09 17:12:49 +00:00

35 lines
1000 B
Zig

const std = @import("std");
const jetquery = @import("jetquery");
/// Run the migration generator. Create a migration in `src/app/database/migrations/`
pub fn run(allocator: std.mem.Allocator, cwd: std.fs.Dir, args: [][]const u8, help: bool) !void {
if (help or args.len != 1) {
std.debug.print(
\\Generate a new Migration. Migrations modify the application's database schema.
\\
\\Example:
\\
\\ jetzig generate migration create_iguanas
\\
, .{});
if (help) return;
return error.JetzigCommandError;
}
const name = args[0];
const migrations_dir = try cwd.makeOpenPath(
try std.fs.path.join(allocator, &.{ "src", "app", "database", "migrations" }),
.{},
);
const migration = jetquery.Migration.init(
allocator,
name,
.{ .migrations_path = try migrations_dir.realpathAlloc(allocator, ".") },
);
try migration.save();
}