- mysqldef: Support abbreviation of generated columns #450
- psqldef: Support
PGSSLCERT
&PGSSLKEY
#446
- Support DATETIME fractional seconds #440
- sqlite3def: Support creating and deleting triggers #438
- mssqldef: Quote constraint name #429
- mssqldef: Improve performance #430
- Migrate from deprecated ioutil to compatible functions #431
- Fix duplicate
WITH TIME ZONE
for psqldef #416
- Support ALTER TABLE FOREIGN KEY for psqldef
- Support ALTER TABLE UNIQUE for psqldef
- Remove
--skip-drop
and disableDROP TABLE
statements by default #399- You need to use
--enable-drop-table
to runDROP TABLE
- You need to use
- Fix an error in materialized views with multiple indices #401
- Support updating comments for psqldef #403
- Support casting a default value to array for psqldef #400
- Escape parameters in unique constraints for psqldef #398
- Support GO keyword for mssqldef #382
- GO keyword will be output by mssqldef
- Fix a bug in mssqldef when view definition has newline character #381
- Do not export extension dependent objects for psqldef #389
- Support
next value for
expression for mssqldef #377 - Fix fillfactor index option output for mssqldef #371
- Detect
WITH TIME ZONE
changes for psqldef #376
- Support set statement in trigger for mssqldef
- Currently only boolean options are supported.
- Fix order of index columns in exporting for mssqldef #372
- Quote all column names in exporting for mssqldef #374
- Make MySQL's default index B-Tree on comparison for mysqldef #370
- Add available types in convert/cast function for mssqldef
- Support "INSTEAD OF" trigger for mssqldef #369
- Support Unicode string literal for mssqldef #368
- Fix exported VIEW definition for mssqldef #367
- Support non-standard default schema for mssqldef #364
- Fix schema name normalizer to use
dbo
for mssqldef #357
- Support NONCLUSTERD COLUMNSTORE index for mssqldef #356
- Accept ALTER TABLE without ONLY for mysqldef #352
- Support window functions for mysqldef #350
- Support SECURITY DEFINER/INVOKER VIEW for mysqldef #349
- Support filtered indexes for mssqldef #341
- Fix --export of multiple indexes for mssqldef #338
- Support max length option for mssqldef #330
- Support
DATETIME2
type for mssqldef #329
- Support
INTERVAL
type for psqldef #335
- Support ADD CONSTRAINT after CREATE TABLE for psqldef #331
--file
accepts a comma-separated input to pass multiple SQL files #325- Comparing two
--file
options introduced in v0.11.17 is removed. Instead, you can specify an SQL file in the place of the database name. e.g.mysqldef current.sql < desired.sql
- Comparing two
- Add DesiredDDLs option to pass DDLs as string #315
- sqlite3def: Add fts5 test
- sqlite3def: Add table-options support
- Use upper-case index types in ALTER TABLE #319
- mysqldef: Support SRID column attribute #317
- sqlite3def: Add index support #312
- Allow non-reserved keywords as column names for sqlite3def #307
- Support blob type for sqlite3def #306
- Add
--config
option to sqlite3def #305
- Add
skip_tables
option to--config
for mysqldef and psqldef #304
- Update golang.org/x/text to v0.3.8 #298
- Add .exe extension to Windows executables #294
- Parse CREATE INDEX with cast expression for psqldef #284
- Parse CREATE VIEW with CASE WHEN and function calls for psqldef #285
- Filter primary keys, foreign keys, and indexes with
target_tables
of --config for psqldef #290
- Add --config option to psqldef as well #289
- Support extension for psqldef #288
- Add --ssl-ca option for mysqldef #283
- Stabilize create view comparison for psqldef #278
- Separate comment schema for each table for psqldef #281
- Add --ssl-mode option for mysqldef #277
- Stabilize default value comparison for mysqldef #275
- Support altering table comments for mysqldef #271
- Handle default values of "boolean" correctly #274
- Cross-compile psqldef releases for macOS using Xcode on the macOS runner of GitHub Actions
- Cross-compile psqldef releases for macOS using osxcross instead of Zig
- Initial support of comments for psqldef #266
- Switch the SQL parser of psqldef per statement
- Fix
psqldef --export
for policies
- Introduce a new SQL parser for psqldef #241
- psqldef releases are now cross-compiled using Zig
- Support non-Linux operating systems in sqlite3def releases #149
- Initial support of materialized view indexes #265
- Parse INTERVAL and :: TIMESTAMP WITH TIME ZONE for psqldef #263
- Initial support of materialized views for psqldef #262
- Fix an error when a primary key with AUTO_INCREMENT is modified #258
- Fix the output of composite foreign keys on
psqldef --export
#260
- Fix the type cast parser for psqldef #257
- Support changing precision and scale of numeric types #256
- Parse an expression in the first argument of
substr
for mysqldef #254
- Drop
--skip-file
option from mysqldef - Add
--config
option to mysqldef to specifytarget_tables
#250
- Support casting a default value to jsonb #251
- Fix the parser on reserved keywords for psqldef #249
- Support posix regexp on psqldef #248
- Add
--skip-file
option tomysqldef
to skip tables specified with regexp #242
- Sort table names in
psqldef --export
#240
- Improve handling of SQL comments a little
- Parse
type
columns in VIEW definitions for psqldef #235
- Parse
CREATE INDEX
without an index name correctly for psqldef #234
- Support parsing function calls for psqldef #233
- Escape identifiers generated by
psqldef --export
#232
- Support
ALTER TABLE ADD VALUE
for psqldef #228
- Support parsing
CREATE INDEX CONCURRENTLY
for psqldef #231 - Run DDLs containing
CONCURRENTLY
outside a transaction
- Support parsing
::numeric
after an expression for psqldef #227
- Support parsing
DEFAULT NULL
with cast for psqldef #226
- Skip MySQL
/* */
comments #222
- Ignore
repack
schema in psqldef forpg_repack
extension #224
- Support parsing UNIQUE INDEX in CREATE TABLE for mysqldef #225
- Improve cast handling of CHECK constraints in psqldef #219
- Add
--before-apply
to mysqldef #217
- Add
--skip-view
option to mysqldef as a temporary feature #214- This is expected to be removed once the view support is improved.
- Emulate mysql 5.7+'s TLS behavior by
tls=preferred
in mysqldef #216
- Emulate psql's
sslmode=prefer
in psqldef whenPGSSLMODE
isn't explicitly set
- Fix issues for nvarchar without size #209
- Parse
'string'::bpchar
for psqldef #208
- Consider ON RESTRICT and missing it as the same thing in mysqldef #205
- Parse string literal with character set for mysqldef #204
- Avoid unnecessary CHECK modification for mysqldef #204
- Support parsing IF THEN ... END IF for mysqldef #203
- Support creating indexes on expressions and using function as default #199
- Enable to add a unique constraint to tables in non-public schema #197
- Enable to drop and add CHECK constraints correctly for psqldef #196
- Add
--before-apply
option to psqldef to run commands before apply #195
- Fix issues in schema name handling on CONSTRAINT FOREIGN KEY REFERENCES for psqldef #194
- Handle the same table/column names in different schema names properly #193
- Handle constraints on the same table name but with different schema names for psqldef #190
- Support CHECK constraints on a table in a non-public schema #188
- Support parsing
GENERATED ALWAYS AS expr STORED
for psqldef #184 - Support parsing
text_pattern_ops
for psqldef #184
- Support parsing REFERENCES .. ON DELETE/UPDATE on a column for psqldef #184
- Fix schema handling of CREATE TABLE for psqldef #187
- Support
DEFERRABLE
options for psqldef #186
- Initial support of multi-column CHECK for psqldef #183
- Support dropping unique constraints for psqldef #182
- Allow an empty CREATE TABLE #181
- Support enum default values for psqldef #180
- Initial support of
ALTER TABLE ADD CONSTRAINT UNIQUE
for psqldef #173
- Support column types defined by
CREATE TYPE
for psqldef #176
- Support comparing two
--file
options #179
- Support altering a column with a boolean default value #177
- Fix a bug for retrieving views in mysqldef when there are multiple databases #175
- Initial support of
CREATE TYPE
for psqldef #171
- Initial support of
BEGIN END
in TRIGGER for mysqldef #170
- Support expressions for generated columns in mysqldef #169
- Avoid duplicating unique key definitions in
psqldef --export
#167
- Add
--enable-cleartext-plugin
option to in mysqldef #166
- Support triggers migrated from MySQL 5.6 to 5.7 in mysqldef #157
- Fix duplicated
;
s of triggers inmysqldef --export
- Support
NEW
keyword in an expression of triggers #162
- Support trigger assignment with
NEW
keyword in mysqldef #158
- Support a default value for JSON columns in psqldef #161
- Remove Windows and macOS binaries of sqlite3def releases that haven't been working #149
- Support updating comments of columns #159
- Support parsing table hint like
WITH(NOLOCK)
for mssqldef #156 - Fix parsers mysqldef and psqldef for TRIGGER time #155
- Support parsing
GENERATED ALWAYS AS
for mysqldef #153
- Fix mssqldef's parser for TRIGGER time #152
- Support
USING INDEX
for mysqldef properly #150- It has been crashing since v0.10.8
- Support
TRIGGER
for mssqldef and mysqldef #135
- Support more
DEFAULT
-related features for mssqldef #134- Add and drop a default when the default constraint is changed
- Support
GETDATE()
- Parse parenthesis in default constraints properly
- Support
NOT FOR REPLICATION
for mssqldef #133
- Support enum definition changes #132
- Support more index options for mssqldef #131
- Support more value types for mssqldef #129
- Support CHECK for mssqldef #128
- Support indexes for mssqldef #126
- Support foreign keys for mssqldef #127
- Support index options for mssqldef #125
- Support PRIMARY KEY for mssqldef #124
- Support
DROP COLUMN
for mssqldef #123
- Support
ADD COLUMN
for mssqldef #122
- Add SQL Server support as
mssqldef
#120
- Support parsing and generating index lengths #118
- Accept
PGPASSWORD
instead ofPGPASS
in psqldef #117 - Support changing column defaults in psqldef #116
- Support more default values for psqldef:
CURRENT_DATE
,CURRENT_TIME
,text
,bpchar
#115
- Support PostgreSQL Identity columns #114
- Support
"
to escape SQL identifiers in sqlite3def #111
- Drop darwin-i386 support to upgrade Go version
- Allow parsing
CURRENT_TIMESTAMP()
in addition toCURRENT_TIMESTAMP
for MySQL #59
- Allow parsing index with non-escaped column name
key
for psqldef #100 - Prevent errors on
ADD CONSTRAINT FOREIGN KEY
for psqldef
- Support
SET NOT NULL
andDROP NOT NULL
for psqldefALTER COLUMN
- Support
CITEXT
data type for psqldef
- Fix CHECK handling of v0.8.9 to support PostgreSQL 12
- Support AUTOINCREMENT for sqlite3def #99
- Support CHECK option of CREATE TABLE for psqldef #97
- Generate composite primary keys properly in psqldef #96
- Make
CONSTRAINT foo PRIMARY KEY (bar)
work likePRIMARY KEY (bar)
in psqldef #88
- All identifiers are escaped #87
- Improve comparison of decimal default values #85
- Support parsing columns names in a column's
REFERENCES
in psqldef #84
- Support parsing a column's
REFERENCES
in psqldef #82
- Support
CREATE POLICY
in psqldef #77
- Support more types of default values in psqldef #80
- Support
CREATE VIEW
andDROP VIEW
#78
- Fix an error when adding
NOT NULL
#71- This fixed a bug introduced at v0.7.2
- Preserve AUTO_INCREMENT when changing the column's data type in mysqldef #70
- This fixed a bug introduced at v0.5.20.
- Fix ALTER with CHARACTER SET, COLLATE, and NOT NULL in mysqldef #68
- Support changing a DEFAULT value #67
- Allow a negative default value #66
- Generate
NULL
flag on a column definition ofALTER TABLE
when it's explicitly specified #63
- Ignore
public.pg_buffercache
on psqldef when the extension is enabled #65
- Support sqlite3 by sqlite3def #64
- Support specifying non-public schema in psqldef #62
- Support changing column length #61
- Fully support having UNIQUE in a MySQL column #60
- Support BINARY attribute to specify collation in mysqldef #47
- Support changing types by
ALTER COLUMN
with psqldef
- Add AUTO_INCREMENT after adding index or primary key
- Remove AUTO_INCREMENT before removing index or primary key
- Allow a comment in the end of input schema
- Support altering a column for changing charset and collate #60
- Fix array type definition of
ADD COLUMN
for psqldef (a bugfix for v0.5.17)
- Support parsing a type with
ARRAY
or[]
for psqldef #58
- Support CURRENT_TIMESTAMP with precision #59
- Escape column names in index DDLs #57
- Support updating
ON UPDATE
/ON DELETE
of foreign keys #54 - Fix a bug that foreign key is always exported as
ON UPDATE RESTRICT ON DELETE SET NULL
in psqldef
- Support JSONB type for psqldef #55
- DROP and ADD index if column combination is changed #53
- Escape index names generated in index DDLs #51
- Support adding/removing a default value to/from a column #50
- Avoid unnecessarily generating diff for
BOOLEAN
type on mysqldef #49
- Add
--skip-drop
option to skipDROP
statements #44
- Fix ordering between
NOT NULL
andWITH TIME ZONE
for psqldef, related to v0.5.4 and v0.5.5 #40
- Support
time
with and without timezone for psqldef #39
- Support
timestamp
with and without timezone for psqldef #37
- Fix output length bug of psqldef since v0.5.0 #36
- Support
timestamp
(without timezone) for psqldef #34
- Support
SMALLSERIAL
,SERIAL
,BIGSERIAL
for psqldef #33
- Remove
pg_dump
dependency for psqldef #32
- Show
pg_dump
error output on failure #30
- Preserve line feeds when using stdin #28
- Support reordering columns with the same names #27
- Support enum #25
- Support
ON UPDATE CURRENT_TIMESTAMP
on MySQL
- Fix issues on handling primary key #21
- Add
--password-prompt
option tomysqldef
/psqldef
- This may be deprecated later once
--password
without value is properly implemented
- This may be deprecated later once
- Add
-S
/--socket
option ofmysqldef
to use unix domain socket - Change
-h
option ofpsqldef
to allow using unix domain socket
- Add support for fulltext index
- Support including hyphen in table names
- Support UUID data type for PostgreSQL and MySQL 8+
- Do not fail when view exists but just ignore views on mysqldef
- Views may be supported later, but it's not managed by mysqldef for now
- Support generating
AFTER
orFIRST
onADD COLUMN
on mysqldef
- Support
$PGSSLMODE
environment variable to specifysslmode
on psqldef
- Support managing non-composite foreign key by changing CREATE TABLE
- Note: Use
CONSTRAINT xxx FOREIGN KEY (yyy) REFERENCES zzz (vvv)
for both MySQL and PostgreSQL. In-columnREFERENCES
for PostgreSQL is not supported. - Note: Always specify constraint name, which is needed to identify foreign key name.
- Note: Use
- Fix handling of DEFAULT NULL column
- Parse PostgreSQL's
"column"
literal properly - Dump primary key with
--export
on PostgreSQL - Prevent unexpected DDLs caused by data type aliases (bool, integer, char, varchar)
- Support
ADD PRIMARY KEY
/DROP PRIMARY KEY
in MySQL - Support parsing more data types for PostgreSQL: boolean, character
- Be aware of implicit
NOT NULL
onPRIMARY KEY
- Use
--schema-only
onpg_dump
in psqldef
- Support
$MYSQL_PWD
environment variable to set password on mysqldef - Support
$PGPASS
environment variable to set password on psqldef
- Support changing index on both MySQL and PostgreSQL
- Basic support of
CHANGE COLUMN
on MySQL - All non-SQL outputs on apply/dry-run/export are formatted like
-- comment --
- Support handling index on PostgreSQL
- Support
ADD INDEX
by modifyingCREATE TABLE
on MySQL
- Parse column definition more flexibly
- ex) Both
NOT NULL AUTO_INCREMENT
andAUTO_INCREMENT NOT NULL
are now valid
- ex) Both
- Support parsing
character varying
for PostgreSQL - Remove
;
on generatedADD COLUMN
- Fix SEGV and improve error message on parse error
- Drop all dynamic-link dependency from
mysqldef
- "-- No table exists" is printed when no table exists on
--export
- Improve error handling of unsupported features
- Release binaries for more architectures
- New OS: Windows
- New arch: 386, arm, arm64
- Initial release
- OS: Linux, macOS
- arch: amd64
mysqldef
for MySQL- Create table, drop table
- Add column, drop column
- Add index, drop index
psqldef
for PostgreSQL- Create table, drop table
- Add column, drop column