db15df818c8ccf05232977cb3386d77b8e87b14b
[dbsrgits/SQL-Translator.git] / Changes
1 # ----------------------------------------------------------
2 # x.xxxxx xxxx-xx-xx
3 # ----------------------------------------------------------
4 * Properly quote absolute table names in the MySQL producer
5 * Added semi-colon for (DROP|CREATE) TYPE statements in the Pg producer (wreis)
6 * Added CREATE VIEW subrules for mysql parser (wreis)
7 * ALTER TABLE/ALTER COLUMN/DROP DEFAULT support in Pg producer (mo)
8 * XML parser support for multi-event triggers
9 * SQLite producer support for multi-event triggers
10 * XML parser switched from XML::XPath to XML::LibXML
11 * Pg producer ALTER TABLE/COLUMN and DROP DEFAULT support
12
13 # ----------------------------------------------------------
14 # 0.09004 2009-02-13
15 # ----------------------------------------------------------
16 * Add support for temporary tables in Pg (nachos)
17 * Create Trigger support for SQLite
18 * GraphViz producer improvements
19
20 # ----------------------------------------------------------
21 # 0.09003 2009-02-07
22 # ----------------------------------------------------------
23   <BORKED RELEASE DELETED OFF CPAN>
24
25 # ----------------------------------------------------------
26 # 0.09002 2008-12-05
27 # ----------------------------------------------------------
28 * parsing MySQL CURRENT_TIMESTAMP as scalar ref so it can be produced without 
29   quotes (jgoulah)
30 * Add ignore_opts parser arg (to ignore table options) in Parser::MySQL (jgoulah)
31 * Skip tests for buggy Spreadsheet::ParseExcel versions (rbo)
32 * Add support for skip tables parser arg in Parser::DBI::MySQL (jgoulah)
33 * Changed behaviour of ::Producer::Oracle when returning an array of statements 
34   to make it compatible to DBI->do()
35 * Fixed a few bugs in ::Producer::Oracle
36 * Applied patch from jgoulah to support mysql's MERGE option
37 * Applied patch from rbo to add support of multiple database events on a trigger
38 * Applied patch from lukes to allow drop if exists in sqlite producer, with 
39   version >= 3.3
40 * Applied patch from rjbs with minor changes, now we support scalar refs in 
41   default values!
42 * Fixed SQLite producer to end index statements in newlines, in scalar context
43 * Decreed that all list context statements shall not end in ; or ;\n
44 * Fixed SQLite, Diff and MySQL producers to agree with Decree.
45 * Added support for CREATE VIEW + tests in the Pg producer (wreis)
46 * Added support for CREATE VIEW + tests in the sqlite producer (groditi)
47 * Added proper argument parsing and documentation to MySQL Parser and 
48   Producer (ribasushi)
49 * Using DROP VIEW instead of OR REPLACE clause in the Pg producer, as replace 
50   only allows replacement with identical set of columns (wreis)
51 * Added support for DROP VIEW and fixed CREATE VIEW statement in the sqlite 
52   producer (wreis)
53 * Removed source_db and target_db accessors from Diff (throwback to old version, 
54   only output_db is used)
55
56
57 * Support for longer varchar fields in MySQL
58
59 # ----------------------------------------------------------
60 # 0.09001 2008-08-19
61 # ----------------------------------------------------------
62 * Added support for CREATE VIEW + tests in the mysql producer (groditi)
63 * Added support for SET fields in the mysql producer + test (groditi)
64 * Added support for proper booleans in the mysql producer, when a mysql version 
65   of at least 4.x is supplied
66 * Added support for proper enums under pg (as of 8.3), with pg version check, 
67   and deferrable constraints
68 * Added support to truncate long constraint and index names in the mysql 
69   producer, because of a change to DBIx::Class to produce such long names in 
70   some cases.
71
72 # ----------------------------------------------------------
73 # 0.09000 2008-02-25
74 # ----------------------------------------------------------
75
76 * Fix Pg produces idea of which field types need a size param (wreis)
77 * Add support for COLLATE table option to MySQL parser
78 * Allow DEFAULT CHARACTER SET without '=' (as produced by mysqldump)
79
80 # -----------------------------------------------------------
81 # 0.0899_02 2008-01-29
82 # ----------------------------------------------------------
83
84 * Major refactoring of SQL::Translator::Diff again:
85 * Diff is no longer one huge monolithic function.                         
86 * Added more tests for diff                                               
87 * When producing diffs for MySQL you will (by default) get single alter 
88   statements per table
89 * SQLite can also do remove columns (by creating a temp table as shown in 
90   http://sqlite.org/faq.html#q11
91 * Columns can be renamed if the new schema is from a form that can have metadata
92   (which is pretty much anything but an SQL file.) It does this by looking at 
93   renamed_from in the $field->extra                              
94 * Updated Oracle and Postgres producers
95 * More tests!
96
97 # -----------------------------------------------------------
98 # 0.0899_01 2007-10-21
99 # ----------------------------------------------------------
100
101 * SQL::Translator::Diff now uses the ::Producer modules to create diffs
102   This *will* break back-compatibility
103   Use sqlt-diff-old for the previous one, and fix producers!
104
105 # -----------------------------------------------------------
106 # 0.08001 2007-09-26
107 # ----------------------------------------------------------
108
109 * Patched to ignore all TT versions >= 2.15 until TT is fixed :(
110
111 # -----------------------------------------------------------
112 # 0.08 2006-12-07
113 # -----------------------------------------------------------
114
115 * Patched 18ttschema-producer.t and 33tt-table-producter.t to skip on TT 2.15, 
116   thanks Ash!
117
118 # -----------------------------------------------------------
119 # 0.08_04 2006-11-10
120 # -----------------------------------------------------------
121
122 * Patched MySQL producer to name constraints sanely, thanks Ash
123 * Added patch to Producer::DB2 to avoid dependency issues with foreign keys
124 * Added patch to remove single quotes for numeric default values in Producer::DB2
125 * Fixed Parser::SQLite to require a semicolon after a create trigger statement
126 * Added patch from avinash to add CASCADE to pg table drops
127
128 # -----------------------------------------------------------
129 # 0.08_03
130 # -----------------------------------------------------------
131
132 * Added patch to use default values for Pg timestamp fields
133
134 # -----------------------------------------------------------
135 # 0.08_02    2006-11-03
136 # -----------------------------------------------------------
137
138 * Added patch from Ash to separate DROP statements in mysql producer in 
139   list-context
140 * Fixed up SQLites usage of no-comments
141
142 # -----------------------------------------------------------
143 # 0.08_01    2006-07-23
144 # -----------------------------------------------------------
145
146 * Made Trigger check that a give table exists in on_table - castaway
147 * Split some producers (DB2, MySQL, SQLite, PostgreSQL) into sub methods (others
148   to follow) - castaway
149 * Add alter_* methods to some Producers and docs to Producer.pm (for use by Diff
150   later) - castaway
151 * Made changes to allow producers to return a list of statements - castaway
152 * Split sqlt-diff into script and module - castaway
153 * Added quote_table_names and quote_field_names patch (omega, zamolxes) - castaway
154 * Added DB2 Producer - castaway
155 * Added mysql_character_set for 4.1+ -mda
156 * New filters, Names and Globals. -mda
157 * Added the initial work on a template based Dia UML producer. -mda
158
159 # -----------------------------------------------------------
160 # 0.07    2005-06-10
161 # -----------------------------------------------------------
162 *   YAML parser supports extra attributes on tables.
163
164 *   All schema objects now support the extra attribute, so can
165     have arbitary name/value data attached to them.
166
167 *   Refactoring: Added SQL::Translator::Schema::Object - base 
168     class for all Schema objects.
169
170 *   Changes to MySQL Parser (Dave Howorth)
171     - ignore INSERT statements
172     - permit ALTER TABLE ADD FOREIGN KEY
173     - allow trailing comma on last field in CREATE statements
174     - collect the database name
175
176 *   TTSchema Producer
177     - Can pass extra variables using tt_vars producer arg.
178     - Can pass extra config using tt_conf producer arg.
179     - Variables and config can be passed on the command line
180       with --tt-var and --tt-conf options to sqlt.
181
182 *   Added schema filters.
183
184 *   MySQL Producer
185     - Added 'mysql_table_type' extra attribute on tables.
186     - Works out InnoDB tables from constraints.
187     - mysql_charset and mysql_collate extra attributes for tables and fiels.
188
189
190 # -----------------------------------------------------------
191 # 0.06    2004-05-13
192 # -----------------------------------------------------------
193 *   Added SQL::Translator::Manual
194
195 *   Installation process now uses Module::Build
196
197 *   Added new "Dumper" producer
198
199 *   Changed the native SQL Fairy XML format to a fixed mapping.
200     *NB:* You should convert your existing XML schema. See the
201     SQL::Translator::Parser::XML::SQLFairy docs.
202
203 *   Added producers: TT::Base and TT::Table.
204
205 # -----------------------------------------------------------
206 # 0.05    2004-02-27
207 # -----------------------------------------------------------
208 *   Added "COMMENT ON *" syntax to PostgreSQL parser
209
210 *   Some fixes to Oracle parser as reported by Gail Binkley
211
212 *   Added support in PostgreSQL parser for all "ALTER TABLE" statements
213
214 *   Now distributing sqlt-diff script as it's pretty usable
215
216 *   Added new options to sqlt-graph and GraphViz producer (Dave Cash)
217
218 # -----------------------------------------------------------
219 # 0.04    2003-11-07
220 # -----------------------------------------------------------
221
222 *   Increased version of Constants module to 1.41 to avoid a problem 
223     where 0.02 has 1.4 of that file and 0.03 had 1.06 which confused
224     CPAN
225
226 *   Hard-coded all the PREREQ_PM modules in Makefile.PL (rather than
227     setting them dynamically) so that automated tests would pass
228
229 # -----------------------------------------------------------
230 # 0.03    2003-11-06
231 # -----------------------------------------------------------
232
233 *   Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL, 
234     DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML
235
236 *   Added producers: XML::SQLFairy, TTSchema, Storable, YAML
237
238 *   HTML producer now uses stylesheets to allow easy customization of colors
239
240 *   Many bug fixes to most every module
241
242 *   Added "sqlt-dumper" script to help create a script for dumping
243     a database a la "mysqldump"
244
245 *   Reversed the arrowheads on the graphical producers to show the 
246     relationships in a more standard way
247
248 *   Changes all included script names to start with "sqlt"
249
250 *   Added capturing and printing most embedded table and field comments
251
252 # -----------------------------------------------------------
253 # 0.02    2003-06-17
254 # -----------------------------------------------------------
255
256 *   Added parsers for Excel and Oracle
257
258 *   Removed Sybase parser because it didn't actually work
259
260 *   Added ClassDBI, Diagram, GraphViz, HTML, POD, SQLite, Sybase producers
261
262 *   Added Schema classes to represent schema as objects
263
264 *   Removed "Raw" producer in favor of the Schema classes
265
266 *   Removed "Validator" class as the Schema classes validate themselves
267
268 *   Improved all existing parsers and producers, expanding them to 
269     handle foreign keys much better, produce better output, etc.
270
271 *   Added sqlt-diagram.pl and sqlt-graphviz.pl as CLI frontends to the 
272     graphical producers
273
274 *   Added sql_translator.cgi as a web-form frontend to graphical producers
275
276 *   Expanded test suite
277
278 # -----------------------------------------------------------
279 # 0.01    2003-02-27
280 # -----------------------------------------------------------
281
282 *   Added parsers: XML::SQLFairy, Sybase, SQLite, DBI-MySQL, 
283     DBI-PostgreSQL, DBI-SQLite, DBI-Sybase, Storable, YAML
284
285 *   Added producers: XML::SQLFairy, TTSchema, Storable, YAML
286
287 *   HTML producer now uses stylesheets to allow easy customization of colors
288
289 *   Many bug fixes to most every module
290
291 *   Added "sqlt-dumper" script to help create a script for dumping
292     a database a la "mysqldump"
293
294 *   Reversed the arrowheads on the graphical producers to show the 
295     relationships in a more standard way
296
297 *   Changes all included script names to start with "sqlt"
298
299 *   Added capturing and printing most embedded table and field comments