| author | Radek Brich <radek.brich@devl.cz> | 
| Wed, 09 Jul 2014 18:03:54 +0200 | |
| changeset 104 | d8ff52a0390f | 
| parent 83 | 515fadd3d286 | 
| permissions | -rw-r--r-- | 
| 0 | 1 | ========= | 
| 104 | 2 | PyDbKit | 
| 0 | 3 | ========= | 
| 4 | ||
| 76 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 5 | Requirements | 
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 6 | ------------ | 
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 7 | |
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 8 | * Python 3.2+ | 
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 9 | * Psycopg2 | 
| 83 
515fadd3d286
Add dependency on pycolib. Move common modules to pycolib. Add example table schema for meta DB.
 Radek Brich <radek.brich@devl.cz> parents: 
76diff
changeset | 10 | * pycolib <http://hg.devl.cz/pycolib> | 
| 76 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 11 | |
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 12 | Optional: | 
| 83 
515fadd3d286
Add dependency on pycolib. Move common modules to pycolib. Add example table schema for meta DB.
 Radek Brich <radek.brich@devl.cz> parents: 
76diff
changeset | 13 | * for MyManager: | 
| 76 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 14 | * MySQLdb 1.2.3 | 
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 15 | * see extras for Python3 patch | 
| 83 
515fadd3d286
Add dependency on pycolib. Move common modules to pycolib. Add example table schema for meta DB.
 Radek Brich <radek.brich@devl.cz> parents: 
76diff
changeset | 16 | * for pgconsole.py: | 
| 76 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 17 | * GTK3 + Python bindings + Cairo + GtkSource | 
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 18 | * packages in Debian: python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-gtksource-3.0 | 
| 83 
515fadd3d286
Add dependency on pycolib. Move common modules to pycolib. Add example table schema for meta DB.
 Radek Brich <radek.brich@devl.cz> parents: 
76diff
changeset | 19 | * for browser.py: | 
| 76 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 20 | * tuikit (http://hg.devl.cz/tuikit) | 
| 
3a41b351b122
Port pgconsole to Python3 + GTK3.
 Radek Brich <radek.brich@devl.cz> parents: 
34diff
changeset | 21 | |
| 0 | 22 | General Python Modules | 
| 23 | ---------------------- | |
| 24 | ||
| 25 | pgmanager.py - Database connection manager (pooling etc.) | |
| 26 | pgbrowser.py - Schema browser module | |
| 27 | pgdiff.py - Schema diff tool | |
| 28 | ||
| 29 | Graphical and Command Line Tools | |
| 30 | -------------------------------- | |
| 31 | ||
| 32 | pgbrowser-gtk.py - Database browser - graphical interface (GTK) | |
| 33 | pgconsole-gtk.py - Query console - graphical interface (GTK) | |
| 34 | pgdiff-cli.py - Command line diff tool | |
| 18 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 35 | |
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 36 | MySQL - mytoolkit | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 37 | ----------------- | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 38 | |
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 39 | Package mytoolkit contains PgManager drop-in replacement for MySQL, | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 40 | MyManager. This may be useful if MySQL interoperability is needed | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 41 | for some reason. | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 42 | |
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 43 | MyManager requires MySQLdb module, which works only with Python 2.5 - 2.7. | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 44 | You need patch for Python 3.2 - see `extras/MySQL-python-1.2.3-python3.patch`. | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 45 | |
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 46 | MyManager may be merged into PgManager in future, but currently there | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 47 | isn't any generally usable python module for MySQL. MySQLdb isn't developed | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 48 | anymore thus being practically dead, while alternatives are not mature enough. | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 49 | |
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 50 | Just use PostgreSQL with Python, it's better option in most use cases. | 
| 
a9e12b7cc207
Fix MyManager. Add patch for MySQLdb and Python3.2. Add DelayedQuery.
 Radek Brich <radek.brich@devl.cz> parents: 
0diff
changeset | 51 | |
| 34 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 52 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 53 | Tools | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 54 | ===== | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 55 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 56 | tablecopy.py | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 57 | ------------ | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 58 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 59 | ./tablecapy.py db1 db2 -n | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 60 | Read all tables and all schema from db1, print table names. Remove -n to copy data to db2. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 61 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 62 | ./tablecopy.py db1 db2 -s myschema | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 63 | Copy all tables in "myschema" from db1 to db2. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 64 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 65 | ./tablecopy.py db1 db2 -s myschema --dst-schema otherschema | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 66 | Copy all tables in "myschema" from db1 to same tables in "otherschema" in db2. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 67 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 68 | ./tablecopy.py db1 db2 -s ^my --regex | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 69 | Copy all tables from all schemas beginning with "my". | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 70 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 71 | ./tablecopy.py db1 db2 -s myschema1 --dst-schema myschema2 --regex -t ^my | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 72 | Copy all tables beginning with "my" from myschema1 to tables of same name in myschema2. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 73 | |
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 74 | Rules: | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 75 | If nothing is specified, everything is copied. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 76 | If no target schema or table is specified, data are copied to schema or table of same name. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 77 | If --regex is specified, it applies to table name if specified, schema name otherwise. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 78 | If both --regex and --src-table is specified, both source and dest schema can be named (no regex applied to them). | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 79 | Default schema name is '', which as regex matches all schemas. Same for table name. | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 80 | Regexes are match with source database, destination database is not checked (table may not exists, will fail when copying). | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 81 | Directly specified table name (no --regex) is not checked (may not exists). | 
| 
98c7809af415
Add PgDataCopy. Add TableCopyTool.Add SrcDstTablesTool class to toolbase, use in tablecopy, tablediff.
 Radek Brich <radek.brich@devl.cz> parents: 
18diff
changeset | 82 |