[pyar] Migraciones en Django 1.7c1

Manuel Kaufmann humitos en gmail.com
Lun Jun 30 12:45:07 ART 2014


Hola PyAreros!

No tuvimos mejor idea que empezar un nuevo proyecto con Django 1.7. Ya
solucioné varios problemas de apps de terceros, que no fue nada fácil,
y venía bastante contento con haber podidos resolver esos temas.

Dos características fuertes de Django 1.7 es que:

 1. te deja usar un modelo User personalizado: ya no es necesario
hacer un UserProfile

 2. vienen incluídas las migraciones

En el proyecto en el que estoy estamos haciendo uso de 1) y queremos
hacer uso de 2), pero ahí viene el problema que estoy teniendo.

Cuando empecé a programar en Django 1.7, como no entendía muy bien
cómo funcionaban las migraciones, leí la doc, tiré algunos comandos y
me complicó la vida. Así que, como en ese momento estaba solo
desarrollando y necesitaba ver algunos resultados (no había team ni
servidor de staging) dejá las migraciones de lado por un tiempo.

Hoy hicimos un deploy a staging y obviamente, tengo que poner en
marcha las migraciones. Aquí el problema:

 1. Todas mis apps tienen  la carpeta "migrations/" con su
"__init__.py" vacío dentro
 2. Borro la base de datos, para que quede sin tablas ni nada...
 3. Corro "manage.py makemigrations" y me genera varios archivos (a
veces más de uno por app) con las migraciones y sus dependencias entre
las apps
 4. Corro "manage.py migrate" y recibo un error de "Dependencias circulares"

Traceback (most recent call last):
  File "/home/humitos/Source/chap/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 385, in execute_from_command_line
    utility.execute()
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/core/management/base.py",
line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/core/management/base.py",
line 337, in execute
    output = self.handle(*args, **options)
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py",
line 106, in handle
    plan = executor.migration_plan(targets)
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/executor.py",
line 48, in migration_plan
    for migration in self.loader.graph.forwards_plan(target):
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/graph.py",
line 55, in forwards_plan
    return self.dfs(node, lambda x: self.dependencies.get(x, set()))
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/graph.py",
line 121, in dfs
    return _dfs(start, get_children, [])
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/graph.py",
line 113, in _dfs
    results = _dfs(n, get_children, path) + results
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/graph.py",
line 113, in _dfs
    results = _dfs(n, get_children, path) + results
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/graph.py",
line 113, in _dfs
    results = _dfs(n, get_children, path) + results
  File "/home/humitos/.virtualenvs/chap/local/lib/python2.7/site-packages/django/db/migrations/graph.py",
line 105, in _dfs
    raise CircularDependencyError(path[path.index(start):] + [start])
django.db.migrations.graph.CircularDependencyError: [('challenge',
u'0001_initial'), (u'team', u'0001_initial'), ('challenge',
u'0001_initial')]

Estuve leyendo por acá [1] pero no encuentro la info que necesito ni
entiendo porqué recibo ese error. De hecho, lo que dice la doc para mi
tiene muchísimo sentido, pero lo que me sucede... No...

¿Alguna idea? ¿Puede ser que esto todavía esté verde?

Gracias,

[1]  https://docs.djangoproject.com/en/dev/topics/migrations/#dependencies


-- 
Kaufmann Manuel
-- http://elblogdehumitos.com.ar


More information about the pyar mailing list