* docs/source/siteadmin/plugins.rst:
Added a reminder to run "./bin/gmg dbupdate" after installing a plugin.
Added a new "Deactivating plugins" section.
Renamed "Removing plugins" to "Removing plugin packages".
* mediagoblin/gmg_commands/dbupdate.py (run_foundations):
When adding a plugin's foundations, correctly append both
the name and the foundations in a tuple to the list.
This prevents errors.
Things have gotten both easier and more complex in the branching world
view. Plugins branch off of main with their own migrations.
Generating these has become a bit easier, but the steps for doing this
are a bit wordy to explain.
* docs/source/pluginwriter/database.rst: Update both the
"Creating new Tables" and "Changing the Database Schema Later"
sections accordingly.
Standard for anything existing before the Alembic move-over, but I
forgot this one.
* mediagoblin/plugins/archivalook/migrations/b10b5f822789_archivalook_plugin_initial_migration.py
(upgrade): Add has_table check, skip if such a table already exists.
This allows plugin writers to easily take advantage off alembic's migration
autogeneration support.
* mediagoblin/gmg_commands/alembic_commands.py: Adjusted imports.
(FudgedCommandLine.main, parser_setup): Add support for importing
plugins when --with-plugins is passed in.
The goal is to get things to the point where Alembic can run on its own
for new databases and initialize the whole database on its own. There
are risks to not doing so, see #5413 for details.
There's a lot more here that could removed or cleaned up once
sqlalchemy-migrate is *completely* removed in the future.
* mediagoblin/db/migration_tools.py (MigrationManager.foundations):
Removed attribute.
(MigrationManager.populate_table_foundations): Removed method.
(MigrationManager.init_or_migrate): Removed call to deprecated method.
(populate_table_foundations): New function, refactored from former
MigrationManager method of same name.
* mediagoblin/gmg_commands/dbupdate.py: Import populate_table_foundations.
(DatabaseData.foundations): Remove attribute.
(DatabaseData.make_migration_manager): Adjust instantiation of
MigrationManager.
(gather_database_data): Move out the work of building up foundations data.
(run_foundations): New method, incorporating logic for gathering and
running foundations which was previously spread across other
functions and methods.
(run_alembic_migrations): Remove deprecated comment.
(run_dbupdate): Only run sqlalchemy migrations if we have to.
Also run run_foundations if we are setting up this database for the
first time.
(sqam_migrations_to_run): New method.
This is a necessary step towards deprecating sqlalchemy-migrate.
* mediagoblin/db/migrations/versions/52bf0ccbedc1_initial_revision.py
(upgrade): Update for adding tables. Mostly generated via Alembic's
autogenerate tools.
(downgrade): Added a comment.
This allows us to make use of automatically generated migrations, at
least for core.
* mediagoblin/db/migrations/env.py (target_metadata): Switch to gmg's
Base.metadata.
This is important (probably) for long-running plugin branches.
* mediagoblin/db/migrations/script.py.mako: Updated to upstream
Alembic version of this file.
This makes use of the recently added "build_alembic_config" tool and
removes AlembicMigrationManager.
* mediagoblin/db/migration_tools.py (AlembicMigrationManager): Removed.
* mediagoblin/gmg_commands/dbupdate.py (run_alembic_migrations):
Adjusted to use recently added build_alembic_config tool.
textlive-texmf is currently a dependency of texlive in Guix, and is
very large. Users may want to know and disable this dependency, if
they can bear limiting the media types they are developing with.
* guix-env.scm: New comment on returned package.
Some tests were added for running audio and video submission tests in
test_submission.py. Unfortunately these were not skipped if these
dependencies were not installed. This patch attempts to fix that while
leaving the tests intact.
gmg_commands.alembic attempted to import from `alembic`. On python2.7
it resulted in import from itself.
Rename alembic.py to alembic_commands.py and fix references to
gmg_commands.alembic.
This ensures that links to comments have the correct ID (the
ID of the Comment object) as well as fixing deletion on reports
and fixing a few other little things. I hope this fixes the #5376
issue, though cannot reproduce so unable to confirm.