summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Dittberner <jan.dittberner@googlemail.com>2011-10-28 15:39:31 +0200
committerJan Dittberner <jan.dittberner@googlemail.com>2011-10-28 15:39:31 +0200
commit18c3f68d41fd65681bf76994fdea54b045e35298 (patch)
tree3a3ebf2c74fb8ac516b5c3e62dac9f853dadfd49
parent0c069a63c7d750ca6e5ea8822056e6a073e75ede (diff)
downloadsqalchemy-migrate-18c3f68d41fd65681bf76994fdea54b045e35298.tar.gz
fix issues with ConfigParser and existing repositories (fixes issue 115)
-rw-r--r--docs/changelog.rst4
-rw-r--r--migrate/tests/versioning/test_repository.py2
-rw-r--r--migrate/versioning/repository.py8
-rw-r--r--migrate/versioning/templates/repository/default/migrate.cfg2
-rw-r--r--migrate/versioning/templates/repository/pylons/migrate.cfg5
-rw-r--r--migrate/versioning/version.py2
6 files changed, 13 insertions, 10 deletions
diff --git a/docs/changelog.rst b/docs/changelog.rst
index d391f93..873be7c 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -11,8 +11,8 @@ Features
******************
- improved PEP-8 compliance (issue 122)
-- optionally number versions with timestamps instead of sequences (by Pete
- Keen)
+- optionally number versions with timestamps instead of sequences (partly
+ pulled from Pete Keen)
- allow descriptions in SQL change script filenames (by Pete Keen)
- improved model generation
diff --git a/migrate/tests/versioning/test_repository.py b/migrate/tests/versioning/test_repository.py
index 20aa433..a926f2c 100644
--- a/migrate/tests/versioning/test_repository.py
+++ b/migrate/tests/versioning/test_repository.py
@@ -100,7 +100,7 @@ class TestVersionedRepository(fixture.Pathed):
def test_timestmap_numbering_version(self):
repos = Repository(self.path_repos)
- repos.config.set('db_settings', 'use_timestamp_numbering', True)
+ repos.config.set('db_settings', 'use_timestamp_numbering', 'True')
# Get latest version, or detect if a specified version exists
self.assertEquals(repos.latest, 0)
diff --git a/migrate/versioning/repository.py b/migrate/versioning/repository.py
index 9b1c08a..6e2f678 100644
--- a/migrate/versioning/repository.py
+++ b/migrate/versioning/repository.py
@@ -115,7 +115,7 @@ class Repository(pathed.Pathed):
options.setdefault('version_table', 'migrate_version')
options.setdefault('repository_id', name)
options.setdefault('required_dbs', [])
- options.setdefault('use_timestamp_numbering', '0')
+ options.setdefault('use_timestamp_numbering', False)
tmpl = open(os.path.join(tmpl_dir, cls._config)).read()
ret = TempitaTemplate(tmpl).substitute(options)
@@ -180,9 +180,9 @@ class Repository(pathed.Pathed):
@property
def use_timestamp_numbering(self):
"""Returns use_timestamp_numbering specified in config"""
- ts_numbering = self.config.get('db_settings', 'use_timestamp_numbering', raw=True)
-
- return ts_numbering
+ if self.config.has_option('db_settings', 'use_timestamp_numbering'):
+ return self.config.getboolean('db_settings', 'use_timestamp_numbering')
+ return False
def version(self, *p, **k):
"""API to :attr:`migrate.versioning.version.Collection.version`"""
diff --git a/migrate/versioning/templates/repository/default/migrate.cfg b/migrate/versioning/templates/repository/default/migrate.cfg
index b3380b1..dae0612 100644
--- a/migrate/versioning/templates/repository/default/migrate.cfg
+++ b/migrate/versioning/templates/repository/default/migrate.cfg
@@ -22,4 +22,4 @@ required_dbs={{ locals().pop('required_dbs') }}
# When creating new change scripts, Migrate will stamp the new script with
# a version number. By default this is latest_version + 1. You can set this
# to 'true' to tell Migrate to use the UTC timestamp instead.
-use_timestamp_numbering='false' \ No newline at end of file
+use_timestamp_numbering={{ locals().pop('use_timestamp_numbering') }}
diff --git a/migrate/versioning/templates/repository/pylons/migrate.cfg b/migrate/versioning/templates/repository/pylons/migrate.cfg
index 1dc6ff6..dae0612 100644
--- a/migrate/versioning/templates/repository/pylons/migrate.cfg
+++ b/migrate/versioning/templates/repository/pylons/migrate.cfg
@@ -18,3 +18,8 @@ version_table={{ locals().pop('version_table') }}
# be using to ensure your updates to that database work properly.
# This must be a list; example: ['postgres','sqlite']
required_dbs={{ locals().pop('required_dbs') }}
+
+# When creating new change scripts, Migrate will stamp the new script with
+# a version number. By default this is latest_version + 1. You can set this
+# to 'true' to tell Migrate to use the UTC timestamp instead.
+use_timestamp_numbering={{ locals().pop('use_timestamp_numbering') }}
diff --git a/migrate/versioning/version.py b/migrate/versioning/version.py
index b3beb75..d5a5be9 100644
--- a/migrate/versioning/version.py
+++ b/migrate/versioning/version.py
@@ -90,9 +90,7 @@ class Collection(pathed.Pathed):
return max([VerNum(0)] + self.versions.keys())
def _next_ver_num(self, use_timestamp_numbering):
- print use_timestamp_numbering
if use_timestamp_numbering == True:
- print "Creating new timestamp version!"
return VerNum(int(datetime.utcnow().strftime('%Y%m%d%H%M%S')))
else:
return self.latest + 1