Quick post, since it might help someone - I couldn't find a complete solution on the intertubes...
DBIx::Class::Schema::Versioned makes use of SQL::Translator to generate DDL and diffs.
My own use-case calls for SQLite in some test/dev environments and PostgreSQL in staging/production, but I was unable to generate diffs for a recent change:
translate: Error with parser 'SQL::Translator::Parser::SQLite': Unable to parse line ...
Postgres has neat types like timestamp with time zone which you should think about using. SQLite, on the other hand, treats types a little differently.
No problem, you say, SQLite can simply ignore this type!
Fine in theory, but SQL::Translator::Parser::SQLite's grammar is a little tighter. The solution is to use the single-word definition for the desired type, 'timezonetz'.
Thanks to ilmari and others in #dbix-class for helping me get this straight!
Text only, no HTML, * denotes a required field.