]> git.phdru.name Git - sqlconvert.git/blob - docs/mysql2sql.rst
Document that the program requotes names
[sqlconvert.git] / docs / mysql2sql.rst
1 mysql2sql
2 =========
3
4 This is mysql2sql, a mysql to sql converter. It is primary intended to
5 convert mysqldump (especially with extended INSERT syntax) to standard
6 SQL to load at least to PostgreSQL or SQLite.
7
8 The program is in the early stage of development and currently cannot do much.
9 It removes /\*! directives \*/, unquotes names quoted with backticks, quote
10 non-lowercase names with double quotes, unescapes strings and escapes them to a
11 different quoting style, and passes everything else unmodified.
12
13
14 .. highlight:: none
15
16 Command line
17 ------------
18
19 mysql2sql
20 ~~~~~~~~~
21
22 Usage::
23
24     mysql2sql [-e encoding] [-E output_encoding] [-m/-p/-s] [infile] [[-o] outfile]
25
26 Options::
27
28     -e ENCODING, --encoding ENCODING
29                            input/output encoding, default is utf-8
30     -E OUTPUT_ENCODING, --output-encoding OUTPUT_ENCODING
31                            separate output encoding, default is the same as
32                            `-e` except for console; for console output charset
33                            from the current locale is used
34     -m, --mysql            MySQL/MariaDB quoting style
35     -p, --pg, --postgres   PostgreSQL quoting style
36     -s, --sqlite           Generic SQL/SQLite quoting style (default)
37     -P, --no-pbar          Inhibit progress bar
38     infile                 Input file, stdin if absent or '-'
39     -o, --outfile outfile  Output file, stdout if absent or '-'
40
41 Options `-m/-p/-s` change quoting style. `-m` sets MySQL quoting style; it's
42 added to use the program in the following scenario: convert MySQL dumps with
43 extended INSERTs to SQL with plain INSERTS suitable to be fed back to MySQL.
44 `-p` sets PostgreSQL quoting style; it's like MySQL with additional `E''-style
45 quoting
46 <https://www.postgresql.org/docs/9.1/static/sql-syntax-lexical.html#SQL-SYNTAX-STRINGS-ESCAPE>`_.
47 `-s` sets generic SQL/SQLite quoting style; this is the default.
48
49 If stderr is connected to the console the program displays a text mode progress
50 bar. Option `-P/--no-pbar` inhibits it.
51
52 Option `-o` is useful when infile is absent (input is redirected), for
53 example::
54
55     mysql2sql -o outfile.sql < infile.sql
56     cat infile.sql | mysql2sql -o outfile.sql
57
58 But of course it simply can be::
59
60     mysql2sql - outfile.sql < infile.sql
61     cat infile.sql | mysql2sql - outfile.sql