summaryrefslogtreecommitdiff
path: root/migrate
Commit message (Collapse)AuthorAgeFilesLines
* Retire github mirror, repo moved to opendevHEADmasterJim Rollenhagen2019-09-2683-9525/+0
|
* Merge "Import MutableMapping from the correct Python module"Zuul2019-01-212-2/+2
|\
| * Import MutableMapping from the correct Python moduleChih-Hsuan Yen2019-01-152-2/+2
| | | | | | | | Change-Id: Ifb66fe22bc607b13f5c4756d3b93f5e8206c33e3
* | Merge "Don't use deprecated / non-functional "force" parameter"Zuul2019-01-216-34/+14
|\ \
| * | Don't use deprecated / non-functional "force" parameterMike Bayer2019-01-186-34/+14
| |/ | | | | | | | | | | | | | | | | | | | | The "force" parameter in SQLAlchemy IdentifierPreparer.quote() has been a no-op since 0.9 in https://github.com/sqlalchemy/sqlalchemy/commit/031ef0807838842a827135dbace760da7aec215e, which was six years ago. In SQLAlchemy 1.3 this parameter will be removed entirely. Bump requirements to 0.9 series here and remove usage of the "force" flag. Change-Id: I4492df2e7d2075fefbf13d6782de11f7d402f6b8
* | Use legacy_alter_table ON in sqlite recreate_tableCorey Bryant2019-01-151-0/+9
|/ | | | | | | | | | | | | | | | | | | | | Use "PRAGMA legacy_alter_table = ON" with sqlite >= 3.26 when using "ALTER TABLE RENAME TO migration_tmp" to maintain legacy behavior. As of sqlite version 3.26, when a table is renamed using "ALTER TABLE RENAME TO", REFERENCES clauses that refer to the table will be updated. To maintain legacy (3.24 and earlier) behavior, "PRAGMA legacy_alter_table" can be set to true and "PRAGMA foreign_keys" can be set to false. [1] [1] https://www.sqlite.org/src/info/ae9638e9c0ad0c36 Thanks to "László Böszörményi (GCS)" <gcs@debian.org> for providing the code for this patch, which has since been slightly modified. Change-Id: I539988ab2ad6df6c8f423ecec15364ad8fcc7267 Closes-Bug: 1807262
* Merge "Fix spelling mistake"Jenkins2017-03-242-3/+3
|\
| * Fix spelling mistakedineshbhor2016-10-262-3/+3
| | | | | | | | | | | | TrivialFix Change-Id: I089d9e8b57895d9878bf82d2fac397722fccc083
* | Set autoincrement to False when modifying to non-Integer datatypeMike Bayer2016-10-202-2/+21
|/ | | | | | | | | | | | Starting in SQLAlchemy 1.1, the rules for when "autoincrement=True" may be set on a column are more strict. The migrate tests are testing the alteration of a column from Integer to String and then regenerating; this means we need to set autoincrement to False as well. A related issue in SQLAlchemy 1.1 is also being fixed (see https://bitbucket.org/zzzeek/sqlalchemy/issues/3835/), however this fix is not needed in order for the tests to pass here. Change-Id: Ibd3a75fff13312411df87e17b6e5764865d69728
* Merge "Raise VersionNotFoundError instead of KeyError"Jenkins2016-06-033-3/+22
|\
| * Raise VersionNotFoundError instead of KeyErrordineshbhor2016-05-273-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently migrate.versioning.api.upgrade() raises KeyError instead of sqlalchemy-migrate specific exception if migration script file is not present in migration repository. Raised migrate.exception.VersionNotFoundError if the specified migration script does not exist in the repository. Made VersionNotFoundError exception class as a subclass of KeyError in order to avoid breaking existing users looking for KeyError. Related-Bug: #1546441 Change-Id: I0210d56a6e85f03c44cea027f50863faaf050c1d
* | Fix DeprecationWarning on setuptools >= 11.3dineshbhor2016-05-261-1/+8
|/ | | | | | | | | | | | Python 3.4 unit test is failing because of DeprecationWarning: Parameters to load are deprecated. Called .resolve and .require separately on setuptools >= 11.3. Made provision to call .resolve() method if setuptools >= 10.2 and less than 11.3 else call .load() method. Change-Id: I5ba80edfbf6b7c8399c66f01d57c91bd02eab274 Closes-Bug: #1586060
* Merge "Add VerNum.__index__() for Python 3 support"Jenkins2015-07-312-0/+10
|\
| * Add VerNum.__index__() for Python 3 supportVictor Stinner2015-07-282-0/+10
| | | | | | | | | | | | | | | | | | | | On Python 3, some functions like range() don't try to call the __int__() method to cast an object to integer, but try instead the __index__() method. Add an __index__() method to mimick correctly the int type on Python 3. Change-Id: I8df116d80e201778714a59367600eaef644266ed
* | Fixes usage function for Py3Thomas Goirand2015-07-221-7/+3
|/ | | | | | | | The usage function of migrate_repository.py isn't Python 3 compatible, and this hasn't be caught by unit tests. This patch fixes the function, so at least the file can be compiled in Py3. Change-Id: Ib9333e46e7526e82acde573d4b2046b2bf9a7ae0
* Unblock migrate (py26 and py3* testing issues)Matt Riedemann2015-07-181-10/+22
| | | | | | | | | | | | | | | | | | | | | | | | There are two changes which have to go together to pass the gate tests: 1. Update pbr and mock requirements from global-requirements mock 1.2 supports py26 again so make that the minimum version. The same change is being made in g-r with: Ic6b9e18eaec9c81bbbbc57129e024904be928e09 Sync up with latest pbr in global-requirements while we're at it. Closes-Bug: #1474925 2. Fix the importpath module to work with python >= 3.3 where the __import__ built-in is raising an ImportError on a temporary file that is added to the system path. Closes-Bug: #1475339 Change-Id: Ie98938ba75f3983094dd540b7d26a7ec46be4f6e
* Update flake8 related dependenciesMatt Riedemann2015-07-053-3/+3
| | | | | | | | | | | In order to raise the cap on pbr we need to update the dependent versions of the flake8 related packages for the pep8 job since they have capped pbr. A couple of simple hacking issues are fixed, the rest are ignored. Change-Id: Icddb5bf284da7b6463ebcfc7512726149ffe6085
* Update tests and reqs for SQLA 1.0Mike Bayer2015-07-014-3/+19
| | | | | | | Lift the requirements to support SQLAlchemy 1.0. Two tests were calling upon revised APIs and required adjustment. Change-Id: Ic91a91bb3c915027b522eace302f2ed074233294
* Ignore stderr output when invoking migrate script in testsMike Bayer2015-07-011-15/+34
| | | | | | | | | | Under Python 2.6 a setuptools warning is produced when the migrate runner runs. Since migrate invokes its own commandline client from tests in a separate shell, the fixture we're using to do that must be told not to complain about this stderr. Change-Id: Ib5823754d6ffabe954665f2a7529ed0e56591ebf
* Fix ibmdb2 index name handling0.9.6Qin Zhao2015-03-161-6/+30
| | | | | | | | | | | | | The ibmdb2 code calls _index_identifier() when it handles index name. This method only exists from sqlalchemy 0.6.5 to 0.7.*. Nova code change https://review.openstack.org/#/c/153123/ attempts to drop a db constraint and it fails to sync nova db with sqlalchemy 0.9.8 running against db2. Need to let ibmdb2 code identify sqlalchemy version and call the correct method to handle index name. Closes-Bug: 1428477 Change-Id: Ie6333f9cea0209c1ea290356873a1a1bcf409bed
* Merge "Don't run the test if _setup() fails"0.9.5Jenkins2015-02-241-12/+2
|\
| * Don't run the test if _setup() failsRoman Podoliaka2015-02-231-12/+2
| | | | | | | | Change-Id: I2c89c98961044f0e0a1d9b4c2eeea190c5830eed
* | Merge "script: strip comments in SQL statements"Jenkins2015-02-242-0/+11
|\ \ | |/ |/|
| * script: strip comments in SQL statementsIhar Hrachyshka2015-01-142-0/+11
| | | | | | | | | | | | | | | | | | Regular expression does not match correctly against statements that contain comments at their start. So strip those comments first (and whitespaces, while we are at it). Change-Id: Iad9b544bf995374d76cab1e125658aae2f8511f4 Closes-Bug: #1410494
* | allow dropping fkeys with sqliteMatt Riedemann2015-02-202-18/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | This implements the ability to drop foreign keys with sqlite. It's basically the same implementation used for dropping unique constraints so the common code is refactored. The existing FKey test that was skipping sqlite is no longer skipped to show this works. Change-Id: Idaaf4229e34af4c21c3bcead4b4e22491d24238e Closes-Bug: #1423955
* | Merge "Fixes the auto-generated manage.py"Jenkins2015-01-152-0/+2
|\ \
| * | Fixes the auto-generated manage.pyPeter Conerly2014-08-022-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Removes `six` from the locals().copy() so that it won't be templated into manage.py. Currently manage.py is mis-templated and is failing. Change-Id: Ib3b7c7caac998fbaa45c3370547c9b8bf13abe41 Closes-Bug: 171
* | | Merge "Replace assertNotEquals with assertNotEqual."Jenkins2015-01-153-3/+3
|\ \ \ | |_|/ |/| |
| * | Replace assertNotEquals with assertNotEqual.Cyril Roelandt2014-10-303-3/+3
| | | | | | | | | | | | | | | | | | The former is deprecated and the latter should be used. Change-Id: I9d6dca41cb737062e6d4467c24dbc88901ab9a14
* | | Merge "Use native sqlalchemy 0.9 quote attribute with ibmdb2"Jenkins2015-01-101-2/+5
|\ \ \
| * | | Use native sqlalchemy 0.9 quote attribute with ibmdb2Rahul Priyadarshi2015-01-091-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 8d6ce64cd08c0598963a92844495782997cd59f3 started using the native quote attribute built into sqlalchemy 0.9 but missed the changes to the ibmdb2 changeset, so alter table statements fail for DB2 on sqlalchemy >= 0.9 (tested against 0.9.8). This fixes the same issue for the ibmdb2 changeset. Change-Id: Ia3fa6c3090b5eab29ed7746f4795d502990b8a2f
* | | | Ignore transaction management statements in SQL scriptsIhar Hrachyshka2015-01-092-1/+40
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we don't run SQL script with a single .execute() call, transaction management statements (BEGIN, COMMIT, END) fail with operational error. Ignore them if occurred in a script. All in all, transactions are managed by SQLAlchemy-migrate itself, so there is no reason for the calling code to pass those statements in a SQL script. Warn user about the statements that are ignored. The ideal response to such a warning from library users is removing those redundant transaction management statements from their scripts. Note: ROLLBACK is not ignored even though it's one of transaction management statements because its usage in migration scripts is insane anyway, and we're better fail on it and not (almost) silently ignore it. Change-Id: Ie4179c0e9341d42656d66821aaac23f8dcd33927 Closes-bug: 1368391
* | | Don't add warnings filter on importBrant Knudson2015-01-082-4/+0
|/ / | | | | | | | | | | | | | | | | The changeset module was adding a warnings filter on import. This affects all applications that wind up importing it. A library shouldn't modify the warnings filters unless asked. Closes-Bug: #1407736 Change-Id: I893f8be48efd3d3642e977ab587c9e6dc867258b
* | Merge "Fix ibmdb2 unique constraint handling for sqlalchemy 0.9"Jenkins2014-10-101-3/+3
|\ \
| * | Fix ibmdb2 unique constraint handling for sqlalchemy 0.9Matt Riedemann2014-08-041-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ibmdb2 unique constraint code was accessing the private _all_cols member var in iterating over columns which breaks in sqlalchemy 0.9 so fix up the code to not use internals of sqlalchemy. UniqueConstraint in sqlalchemy extends ColumnCollectionConstraint which implements __iter__ to generate a tuple of the columns in the constraint, so we just iterate over the constraint as the fix. This is based on a patch from Rahul Priyadarshi in ibm-db-sa issue 158: https://code.google.com/p/ibm-db/issues/detail?id=158 Co-Authored-By: Rahul Priyadarshi <rahul.priyadarshi@in.ibm.com> Change-Id: I0f06f6314c382e83573d762abe5981db0a02a83a
* | SqlScript: execute multiple statements one by one0.9.2Ihar Hrachyshka2014-08-232-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some drivers [f.e. MySQL Connector] do not like multiple statements being passed to .execute(). They require either passing multi=True parameter to .execute() that is not DB-API 2.0 defined, or executing those statements one by one. For that patch, I've chosen the second option to stay away from driver specific hacks. Also removed SQLite hack that seems to be related to the same multiple statements issue. blueprint enable-mysql-connector Change-Id: Ic6d53ed1fef8aee9471f3540f06b39cd5ee4ef82
* | Make sure we don't throw away exception on SQL script failureIhar Hrachyshka2014-08-231-1/+2
|/ | | | | | | | | If SQL script failed, we don't currently log the failure anywhere, so users have hard time debugging an issue, if anything arises. Let's log the failure before proceeding with rollback. Change-Id: Ic92b1403c00bb238a68265a15150a4be6f6b2346
* Merge "Fix 3 files with Windows line endings to Unix line endings."Jenkins2014-07-222-403/+401
|\
| * Fix 3 files with Windows line endings to Unix line endings.David Ripton2014-02-272-403/+401
| | | | | | | | Change-Id: Iadc8e5d195bf998a117da4b7102a8955e238dd4e
* | Merge "Move patch from oslo to drop unique constraints with sqlite"0.9.1Jenkins2014-05-052-4/+49
|\ \
| * | Move patch from oslo to drop unique constraints with sqliteMatt Riedemann2014-04-152-4/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | oslo-incubator commit 3f503faac for making sqlite work with dropping unique constraints in database migrations. This was made in oslo-incubator since at the time sqlalchemy-migrate was not in stackforge. Now that we can update sqlalchemy-migrate, move the patch over from oslo. This change also adds the support for the case that a unique constraint is dropped because the column it's on is dropped. Note that there are already unit tests that cover dropping a unique constraint directly and implicitly via dropping a column that is in the unique constraint. Related-Bug: #1307266 Change-Id: I5ee8082a83aebf66f6e1dacb093ed79e13f73f5e
* | | Port to Python3Cyril Roelandt2014-04-0926-82/+169
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Brief summary of the modifications: * Use six for compatibility with both Python 2 and 3; * Replace UserDict.DictMixin with collections.MutableMapping; * Fix relative imports; * Use test-requirements.txt for requirements that are common to both Python 2 and 3, and test-requirements-py{2,3}.txt for version-specific requirements; * Miscellaneous fixes. * Use a specific test_db_py3.cfg file for Python 3, that only runs tests on sqlite. Thanks to Victor Stinner who co-wrote this patch. Change-Id: Ia6dc536c39d274924c21fd5bb619e8e5721e04c4 Co-Authored-By: Victor Stinner <victor.stinner@enovance.com>
* | tests: Replace "self.assert_" by "self.assertTrue"Cyril Roelandt2014-03-3113-108/+108
| | | | | | | | | | | | | | | | The assert_() method is deprecated and can be safely replaced by assertTrue(). This patch makes sure that running the tests does not fill the screen with warnings. Change-Id: I8966b7f7a44f1573a4d2c398717bfc68ae40b197
* | Merge "Eradicate trailing whitespace"Jenkins2014-03-2926-123/+123
|\ \
| * | Eradicate trailing whitespaceDavid Ripton2014-02-2628-141/+141
| |/ | | | | | | | | | | | | | | | | | | Remove all trailing spaces and tabs in every file in the project. People have editors configured to do this, which causes them to accidentally make little whitespace changes in unrelated commits, which makes those commits harder to review. Better to fix them all at once. Change-Id: I17d89f55f41d8599e0ab1a31f646cd161289703e
* | Replace AbstractType by TypeEngineThomas Goirand2014-03-051-1/+1
| | | | | | | | | | | | | | AbstractType not longer exists in the class hierarchy for types. TypeEngine was its direct descendant, so use that instead. Change-Id: Idbfaee4b0d3acbc4795913ddf2ab4e1c9b6d065c
* | fix scripttest compatThomas Goirand2014-03-051-1/+0
| | | | | | | | | | | | | | | | There's no script_path param in the current version of scripttest. This patch fixes that by removing the param, which by the way isn't useful. Change-Id: Ic78cea25bb472702473e98b48a8ff74c01545aa3
* | Use native quote attribute introduced in sqla 0.9Thomas Goirand2014-03-054-24/+43
| | | | | | | | | | | | | | | | | | In SQLA 0.9 there is now a native .quote attribute on many objects. Conditionally use this instead of the old method if the attribute exists, to remove deprecation messages (and prepare for when the other way will be fully removed). Change-Id: I3c5fada13e044c1c4102acc0455226ce1524f2e2
* | Fix genmodel for SQLA 0.9Thomas Goirand2014-03-051-10/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: * Some python code was auto generated and exec'ed in that package. * The python code that was problematic had a 'Table' definition * The generated code imports '*' from sqlalchemy * One among the 'Column' was defined as an 'INTEGER' type, which points to sqlalchemy.sql.sqltypes.INTEGER * The INTEGER class was initialised with a parameter display_width which contradicts with sqlalchemy.sql.sqltypes.INTEGER.__init__, which does not accept any parameters * The 'INTEGER' class should have been imported from mysql dialects' type module Solution: * While generating, in the header part, I am now checking if any of the column.type.__class__.__name__ has 'dialects' in it. * If I find any, I am adding the import rule such that the type is imported from the dialects' type. This patch has been tested with SQLA 0.9.3, for which it fixes the unit tests, and with SQLA 0.8.2, which doesn't have (new) problems with this patch. Change-Id: Ie0e09b45388462629100017bea3ea8a314d148d8
* | Merge "UniqueConstraint named and escaped twice"Jenkins2014-03-051-1/+1
|\ \