diff --git a/CHANGELOG b/CHANGELOG index 7d962b2..6d8de83 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +0.4.0 +- SA 0.4.0 compatibility thanks to Christian Simms +- all unit tests are working now (with sqlalchemy >= 0.3.10) + 0.3 - SA 0.3.10 compatibility diff --git a/docs/changeset.rst b/docs/changeset.rst index 3746cfa..93932a0 100644 --- a/docs/changeset.rst +++ b/docs/changeset.rst @@ -6,7 +6,7 @@ migrate.changeset Importing ``migrate.changeset`` adds some new methods to existing SA objects, as well as creating functions of its own. Most operations can be done either by a method or a function. Methods match SA's existing API and are more intuitive when the object is available; functions allow one to make changes when only the name of an object is available (for example, adding a column to a table in the database without having to load that table into Python). -Changeset operations can be used independently of Migrate's `versioning system`_. +Changeset operations can be used independently of SQLAlchemy Migrate's `versioning system`_. For more information, see the generated documentation for `migrate.changeset`_. @@ -81,7 +81,7 @@ Rename an index, given an SQLAlchemy ``Index`` object:: Constraint ========== -SQLAlchemy supports creating/dropping constraints at the same time a table is created/dropped. Migrate adds support for creating/dropping primary/foreign key constraints independently. +SQLAlchemy supports creating/dropping constraints at the same time a table is created/dropped. SQLAlchemy Migrate adds support for creating/dropping primary/foreign key constraints independently. Primary key constraints:: @@ -91,7 +91,7 @@ Primary key constraints:: # Drop the constraint cons.drop() -Note that Oracle requires that you state the name of the primary key constraint to be created/dropped. Migrate will try to guess the name of the PK constraint for other databases, but if it's something other than the default, you'll need to give its name:: +Note that Oracle requires that you state the name of the primary key constraint to be created/dropped. SQLAlchemy Migrate will try to guess the name of the PK constraint for other databases, but if it's something other than the default, you'll need to give its name:: PrimaryKeyConstraint(col1,col2,name='my_pk_constraint') diff --git a/docs/download.rst b/docs/download.rst index 88bdf20..dc6c1a5 100644 --- a/docs/download.rst +++ b/docs/download.rst @@ -5,11 +5,11 @@ Migrate Download ======== -Migrate builds on SQLAlchemy_, so you should install that first. +SQLAlchemy-Migrate builds on SQLAlchemy_, so you should install that first. -You can get the latest version of Migrate from the `cheese shop`_, or via easy_install_:: +You can get the latest version of SQLAlchemy Migrate from the `cheese shop`_, or via easy_install_:: - easy_install migrate + easy_install sqlalchemy-migrate You should now be able to use the *migrate* command from the command line:: @@ -17,21 +17,21 @@ You should now be able to use the *migrate* command from the command line:: This should list all available commands. *migrate help COMMAND* will display more information about each command. -If you'd like to be notified when new versions of migrate are released, subscribe to `migrate-announce`_. +If you'd like to be notified when new versions of SQLAlchemy Migrate are released, subscribe to `migrate-announce`_. .. _easy_install: http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install .. _sqlalchemy: http://www.sqlalchemy.org/download.myt -.. _`cheese shop`: http://www.python.org/pypi/migrate +.. _`cheese shop`: http://www.python.org/pypi/sqlalchemy-migrate .. _`migrate-announce`: http://groups.google.com/group/migrate-announce Development =========== -Migrate's Subversion_ repository is at http://erosson.com/migrate/svn/ +Migrate's Subversion_ repository is at http://sqlalchemy-migrate.googlecode.com/svn/ To get the latest trunk:: - svn co http://erosson.com/migrate/svn/migrate/trunk + svn co http://sqlalchemy-migrate.googlecode.com/svn/trunk Patches should be submitted as Trac tickets. diff --git a/docs/index.rst b/docs/index.rst index 568d2eb..04f9893 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,13 +1,15 @@ -======= -Migrate -======= +================== +SQLAlchemy Migrate +================== SQLAlchemy schema change management ----------------------------------- -Inspired by Ruby on Rails' migrations, Migrate provides a way to deal with database schema changes in SQLAlchemy_ projects. +Inspired by Ruby on Rails' migrations, SQLAlchemy Migrate provides a way to deal with database schema changes in SQLAlchemy_ projects. Migrate was started as part of `Google's Summer of Code`_ by Evan Rosson, mentored by Jonathan LaCour. +The project was taken over by a small group of volunteers when Evan had no free time for the project. It is now hosted as a `Google Code project`_. During the hosting change the project was renamed to SQLAlchemy Migrate. + - Download_ - Documentation: @@ -17,6 +19,7 @@ Migrate was started as part of `Google's Summer of Code`_ by Evan Rosson, mentor * Changeset_: Database-independent schema changes; ALTER TABLE with SQLAlchemy .. _`google's summer of code`: http://code.google.com/soc +.. _`Google Code project`: http://code.google.com/p/sqlalchemy-migrate .. _download: download.html .. _versioning: versioning.html .. _changeset: changeset.html diff --git a/docs/versioning.rst b/docs/versioning.rst index ce18526..0657228 100644 --- a/docs/versioning.rst +++ b/docs/versioning.rst @@ -35,7 +35,7 @@ The database is specified as a `SQLAlchemy database url`_. We can have any number of databases under this repository's version control. -Each schema has a version that Migrate manages. Each change script applied to the database increments this version number. You can see a database's current version:: +Each schema has a version that SQLAlchemy Migrate manages. Each change script applied to the database increments this version number. You can see a database's current version:: % migrate db_version sqlite:///project.db my_repository 0 @@ -111,7 +111,7 @@ You should be very careful about importing files from the rest of your applicati Commit the change script ------------------------ -Now that our script is done, we'll commit it to our repository. Committed scripts are considered 'done' - once a script is committed, it is moved into the repository, the change script file 'disappears', and your change script can be applied to a database. Once a script is committed, Migrate expects that the SQL the script generates will not change. (As mentioned above, this may be a bad assumption when importing files from your application!) +Now that our script is done, we'll commit it to our repository. Committed scripts are considered 'done' - once a script is committed, it is moved into the repository, the change script file 'disappears', and your change script can be applied to a database. Once a script is committed, SQLAlchemy Migrate expects that the SQL the script generates will not change. (As mentioned above, this may be a bad assumption when importing files from your application!) Change scripts should be tested before they are committed. Testing a script will run its upgrade() and downgrade() functions on a specified database; you can ensure the script runs without error. You should be testing on a test database - if something goes wrong here, you'll need to correct it by hand. If the test is successful, the database should appear unchanged after upgrade() and downgrade() run. @@ -154,7 +154,7 @@ Writing change scripts By default, change scripts may do anything any other SQLAlchemy program can do. -Migrate extends SQLAlchemy with several operations used to change existing schemas - ie. ALTER TABLE stuff. See changeset_ documentation for details. +SQLAlchemy Migrate extends SQLAlchemy with several operations used to change existing schemas - ie. ALTER TABLE stuff. See changeset_ documentation for details. .. _changeset: changeset.html @@ -229,7 +229,7 @@ Sometimes you need to write code for a specific database. Migrate scripts can ru .sql scripts ------------ -You might prefer to write your change scripts in SQL, as .sql files, rather than as Python scripts. Migrate can work with that:: +You might prefer to write your change scripts in SQL, as .sql files, rather than as Python scripts. SQLAlchemy Migrate can work with that:: % migrate version my_repository 10 @@ -242,11 +242,11 @@ You might prefer to write your change scripts in SQL, as .sql files, rather than Here, two scripts are given, one for each *operation*, or function defined in a Python change script - upgrade and downgrade. Both are specified to run with Postgres databases - we can commit more for different databases if we like. Any database defined by SQLAlchemy may be used here - ex. sqlite, postgres, oracle, mysql... -For every .sql script added after the first, we must specify the version - if you don't enter a version to commit, Migrate assumes that commit is for a new version. +For every .sql script added after the first, we must specify the version - if you don't enter a version to commit, SQLAlchemy Migrate assumes that commit is for a new version. Python API ========== -All commands available from the command line are also available for your Python scripts by importing `migrate.versioning.api`_. See the `migrate.versioning.api`_ documentation for a list of functions; function names match equivalent shell commands. You can use this to help integrate Migrate with your existing update process. +All commands available from the command line are also available for your Python scripts by importing `migrate.versioning.api`_. See the `migrate.versioning.api`_ documentation for a list of functions; function names match equivalent shell commands. You can use this to help integrate SQLAlchemy Migrate with your existing update process. For example, the following commands are similar: diff --git a/setup.py b/setup.py index 882e47a..de7d806 100644 --- a/setup.py +++ b/setup.py @@ -9,7 +9,7 @@ except ImportError: setup( name = "sqlalchemy-migrate", - version = "0.4.0dev", + version = "0.4.0", packages = find_packages(exclude=['test*']), scripts = ['shell/migrate'], include_package_data = True, @@ -20,7 +20,7 @@ Inspired by Ruby on Rails' migrations, Migrate provides a way to deal with datab Migrate extends SQLAlchemy to have database changeset handling. It provides a database change repository mechanism which can be used from the command line as well as from inside python code. """, - install_requires = ['sqlalchemy >= 0.4.0'], + install_requires = ['sqlalchemy >= 0.3.10'], setup_requires = ['py >= 0.9.0-beta'], dependency_links = [ "http://codespeak.net/download/py/",