Django CMS: обновление с aldryn-blog до aldryn-newsblog

Приложение Django CMS Блог Aldryn устарело с 2015 года и заменено на Новостной блог Aldryn.

Каков оптимальный способ обновления aldryn-blog до aldryn-newsblog (совместим с Django 1.6.11)? Конечная цель - обновить нашу систему Django с 1.6.1x до 1.7.y

  • Как можно перенести записи aldryn-blog в aldryn-newsblog?
  • Как можно сделать HTML-совместимыми лиды aldryn-newsblog?
  • Какова наилучшая последовательность обновлений для перехода с Django 1.6.x на Django 1.7.y и перехода с aldryn-blog на aldryn-newsblog?

Подробная информация о нашей текущей настройке

requirements.txt:

--extra-index-url https://divio:[email protected]/simple/
--extra-index-url https://devpi.divio.ch/divio/all/+simple/
aldryn-apphooks-config==0.2.7
aldryn-blog==0.4.6
aldryn-boilerplates==0.7.4
aldryn-categories==1.0.2
aldryn-common==0.1.4
aldryn-faq==1.0.5
aldryn-gallery==0.2.1
aldryn-newsblog==1.2.1
aldryn-people==1.2.0
aldryn-reversion==1.0.8
aldryn-search==0.2.11
aldryn-translation-tools==0.2.1
argparse==1.2.1
cmsplugin-plaintext-djangocms3==0.2.1
dill==0.2.4
Django==1.6.11
django-admin-sortable==2.0.15
django-admin-sortable2==0.6.3
django-appconf==1.0.2
django-appdata==0.1.5
django-ckeditor==4.4.7
django-classy-tags==0.7.2
django-cms==3.0.15
django-countries==3.3
django-crispy-forms==1.5.1
django-filer==1.2.0
django-haystack==2.4.1
django-hvad==1.5.0
django-meta==0.3.1
django-meta-mixin==0.2.1
django-mptt==0.6.1
django-parler==1.6.2
django-phonenumber-field==1.1.0
django-polymorphic==0.8.1
django-reversion==1.8.4
django-sekizai==0.9.0
Django-Select2==4.3.1
django-sortedm2m==1.0.2
django-spurl==0.6.4
django-standard-form==1.1.4
django-taggit==0.11.2
django-treebeard==4.0
djangocms-admin-style==1.1.0
djangocms-column==1.4
djangocms-file==0.0.2
djangocms-flash==0.0.3
djangocms-googlemap==0.1.0
djangocms-inherit==0.0.2
djangocms-installer==0.5.4
djangocms-link==1.4.0
djangocms-picture==0.0.4
djangocms-snippet==1.5
djangocms-style==1.4
djangocms-teaser==0.0.2
djangocms-text-ckeditor==2.3.0
djangocms-video==0.0.2
factory-boy==2.5.2
fake-factory==0.5.3
html5lib==0.9999999
lockfile==0.10.2
mock==1.3.0
pandas==0.16.2
phonenumbers==7.3.1
phonenumberslite==7.3.1
Pillow==2.5.3
psycopg2==2.6.1
pytz==2014.7
six==1.10.0
South==1.0.2
wsgiref==0.1.2

Переопределены ли в вашем проекте шаблоны блога Aldryn?

Да, но только внешне. В настоящее время мы уже удалили шаблоны блога Aldryn, но можем отменить этот шаг. Если нужно ответить на мой вопрос, я с радостью сделаю эти шаблоны доступными.

Есть ли в вашем проекте специальные расширения для блога Aldryn?

No.

Доступны ли в настоящее время статьи блога для поиска? (стог сена)

django-haystack установлен, но в настоящее время мы не используем эту функцию.

Используете ли вы какие-либо плагины, предоставленные блогом Aldryn? Нравится авторов или тегов?

Сообщения блога Aldryn помечены тегами и имеют авторов, но мы не используем дополнительные функции тегов или плагинов BlogAuthors.

Спасибо!


person elke    schedule 05.05.2016    source источник


Ответы (1)


вот мои ответы на некоторые из ваших вопросов:

Как можно сделать HTML-совместимыми лиды aldryn-newsblog?

Да, новостной блог Aldryn использует HTMLField djangocms-text-ckeditor

Как можно перенести записи aldryn-blog в aldryn-newsblog?

Очень осторожно :) Шучу ...

Во-первых, единственный способ выполнить эту миграцию - оставаться на версии 1.6 в течение всего процесса. Это означает, что не обновляйтесь до Django> = 1.7, пока эта миграция не будет полностью завершена.

Тем не менее, чтобы предоставить вам как можно больше информации, отправьте точные версии для следующих пакетов (или заморозки пакетов):

  • Джанго
  • django CMS
  • django taggit
  • Блог Олдрин
  • Aldryn News & Blog (он уже установлен?)
  • Категории Aldryn (он уже установлен?)
  • Джанго-Хвад
  • djangocms-text-ckeditor

Также вот несколько вопросов:

Переопределяются ли шаблоны блога Aldryn в вашем проекте?

Есть ли в вашем проекте специальные расширения для блога Aldryn?

Доступны ли в настоящее время статьи блога для поиска? (стог сена)

ИЗМЕНИТЬ v1

То, как я делаю такие миграции, - это писать несколько команд управления django, обычно одна «основная» команда, которая будет вызывать остальные.

Делая это, я могу выполнять итерацию быстрее локально, и когда будет готов (после большого количества тестов), запустить команду непосредственно в продукте (после обновления необходимых зависимостей).

Я настоятельно рекомендую использовать stellar для быстрых снимков базы данных во время локального развитие миграции. Позволяет мгновенно делать снимки и восстанавливать БД и довольно проста в настройке.

Вот пример такой основной команды:

from django.core.management import call_command, CommandError
from django.core.management.base import NoArgsCommand
from django.db import connection

from south.db import db

from cms.models import Page


class Command(NoArgsCommand):
    can_import_settings = True

    def handle_noargs(self, **options):
        self.stdout.write("Running migrations.\n")

        # Migrate newsblog up to 0013
        call_command('migrate', 'aldryn_newsblog', '0013')

        # Now fake migration 0014 because we don't want the default
        # app config since we'll create it in a later step
        call_command('migrate', 'aldryn_newsblog', '0014', fake=True)
        # Now migrate all the way to 0027 because we need to fake 0028
        call_command('migrate', 'aldryn_newsblog', '0027')
        # This migration has unfortunate side effects when Aldryn blog
        # is installed in the system.
        # It's ok to fake it because is just a data migration
        call_command('migrate', 'aldryn_newsblog', '0028', fake=True)
        # Move to 0035 because we need to fake 0036
        call_command('migrate', 'aldryn_newsblog', '0035')
        # Because we're not using default apphook config, fake 0036
        call_command('migrate', 'aldryn_newsblog', '0036', fake=True)

        # Proceed with all migrations
        call_command('migrate')

        self.stdout.write('Setting up blog page.\n')
        call_command('setup_blog_page')

        self.stdout.write('Migrating Aldryn Blog to Aldryn News & Blog.\n')
        call_command('migrate_blog_to_newsblog')

Теперь вам нужны команды setup_blog_page и migrate_blog_to_newsblog. Прежде чем предоставить их, у меня есть еще один вопрос:

Используете ли вы какие-либо плагины, предоставленные блогом Aldryn? Нравится авторов или тегов?

person Paulo    schedule 09.05.2016