• Dan Knox's avatar
    Fix Wiki migration task and add more test coverage. · 330fe416
    Dan Knox authored
    There was an error in the #extract_attributes_from_page method that
    caused an exception when checking to see if a page named "Home"
    already exists.
    
    The check occurs to handle the renaming of the main index page to
    "Home" to match the Gollum standard. If there is already a page
    called "Home" then the migrator will leave that page and create
    the Index page as usual. Users will need to manually rename their
    old "Home" page to something else then rename their "Index" page
    to "Home". Fortunately, I would be highly surprised if this case
    ever comes up.
    
    I also added more verbosity to the logging so if an error does
    occur, it will be easier to track down which Wiki page is causing
    the problem.
    330fe416
migrate_wiki.rake 1.51 KB
namespace :gitlab do
  namespace :wiki do

    # This task will migrate all of the existing Wiki
    # content stored in your database into the new
    # Gollum Wiki system. A new repository named
    # namespace/project.wiki.git will be created for
    # each project that currently has Wiki pages in
    # the database.
    #
    # Notes:
    #  * The existing Wiki content will remain in your
    #    database in-tact.
    desc "GITLAB | Migrate Wiki content from database to Gollum repositories."
    task :migrate => :environment do
      wiki_migrator = WikiToGollumMigrator.new
      wiki_migrator.migrate!
    end

    # This task will destroy all of the Wiki repos
    # that the Wiki migration task created. Run this
    # to clean up your environment if you experienced
    # problems during the original migration. After
    # executing this task, you can attempt the original
    # migration again.
    #
    # Notes:
    #  * This will not affect Wikis that have been created
    #    as Gollum Wikis only. It will only remove the wikis
    #    for the repositories that have old Wiki data in the
    #    dataabase.
    #  * If you have any repositories already named
    #    namespace/project.wiki that you do not wish
    #    to be removed you may want to perform a manual
    #    cleanup instead.
    desc "GITLAB | Remove the Wiki repositories created by the `gitlab:wiki:migrate` task."
    task :rollback => :environment do
      wiki_migrator = WikiToGollumMigrator.new
      wiki_migrator.rollback!
    end
  end
end