- Postgres doesn't care about names for uniqueness of keys unlike mysql
because internally it keeps "oid" values to keep track of everything.
Unfortunately this means that the information_schema standard is
inadequate to differentiate between constraints that are named the
same (which isn't possible in mysql, but is in pg). Hence we have to
dip into the pg specific schemas for better or worse.
- Fix naming of the sample schema in the README since it would fail for
mysql due to duplicate naming.
- Mark test schema up so we don't fix the bad names so we catch
regressions here.
- Fix#85
- Fix formatting on giant postgres query
- Invert the section that looks for unique constraints to look for a
constraint and join to the constraint_column_usage to be more in line
with the mysql query and also it makes a little bit more sense.
- Add more checks to ensure the schema is being enforced in the postgres
side of things as several pieces in the unique checks were missing it
which would lead to false positives.
- Fix#77 for postgres
- Make postgres name its enums
- Add way to filter columns by whether or not they're an enum
- Split parsing of enums into name & values
- Add strmangle check functions: IsEnumNormal, ShouldTitleCaseEnum
- Add new strmangle enum functions to template test
- Implement a set type called "once" inside the templates so that we can
ensure certain things only generate one time via some unique name.
Query was not properly joining on both name and schema. This will fix the issue where a constraint exists across multiple schemas and causes duplicate relationships to be created.
- Previously we used a lot of template magic to see if we could
use LastInsertId. But there's a much simpler check that's worth doing,
do this at the table level and then let it fall through.