[pyar] [Django] problema al modificar y agregar un campo fecha un Model
Francisco J Capdevila
fjcapdevila en gmail.com
Dom Ago 28 13:00:53 ART 2016
En ese caso deberías eliminar solo la ultima migración. que agregaste,
con eso debería alcanzar.
Es más, dale un vistazo a las migraciones. El código es bastante
simple y te va a dar una idea de como es que funciona el sistema de
migraciones.
Francisco J. Capdevila
2016-08-28 12:58 GMT-03:00 Ricardo Daniel Quiroga <l2radamanthys en gmail.com>:
> si ahi quedo el problema porque renombre el campo y sigue tratando enviar el
> cambio, vere de eliminar la carpeta migration y forzar de nuevo
>
>
>
> 2016-08-28 12:55 GMT-03:00 Ricardo Daniel Quiroga <l2radamanthys en gmail.com>:
>>
>> disculpa copie un traceback anterior, en realidad renombre el campo
>> expire_date a vencimiento por no tener un desastre en spanglish
>>
>>
>> 2016-08-28 12:50 GMT-03:00 Francisco J Capdevila <fjcapdevila en gmail.com>:
>>>
>>> Me parece que Fernando te cantó la justa.
>>>
>>> Otro posible problema sería que tu nuevo campo se llame "expire_date"
>>> en lugar de "vencimiento" y que tu modelo se llame "Catamaran" en
>>> lugar de "Negocio". En ese caso, estás intentando agregar un nuevo
>>> campo que no puede ser Null (por defecto Django define los fields como
>>> null=False), pero ya existen registros en dicha tabla, entonces se
>>> queja por que no puede pner en Null el nuevo campo para los registros
>>> ya existentes en la tabla y tampoco sabe que valor poner por defecto.
>>> Deberías ver si podes definir ese campo como null=True o bien
>>> explicarle a Django como calcular un "expire_date" para los registros
>>> que ya existen para el modelo "Catamaran"
>>>
>>> Saludos y suerte con eso!
>>> Francisco J. Capdevila
>>>
>>>
>>> 2016-08-28 12:34 GMT-03:00 Fernando Riquelme
>>> <fernandoriquelme55 en gmail.com>:
>>> > El problema podría estar en el campo expire_date, de alguna de tus
>>> > tablas
>>> > (creo que Main_catamaran puede tener ese campo)
>>> >
>>> > 2016-08-28 2:47 GMT-03:00 Ricardo Daniel Quiroga
>>> > <l2radamanthys en gmail.com>:
>>> >>
>>> >> Hola
>>> >> actualmente estoy modificando un Modelo en django especificamente
>>> >>
>>> >> class Negocio(models.Model):
>>> >> nombre = models.CharField(max_length=100)
>>> >> telefono = models.CharField(max_length=20, blank=True, default='')
>>> >> telefono_alt = models.CharField(max_length=20, blank=True,
>>> >> default='')
>>> >> facebook = models.CharField(max_length=100,
>>> >> default='https://facebook.com')
>>> >> email = models.CharField(max_length=100, blank=True, default='')
>>> >> lat = models.FloatField(default=0.0)
>>> >> lng = models.FloatField(default=0.0)
>>> >> inproved = models.BooleanField(default=False)
>>> >> vencimiento = models.DateField(auto_now=True)
>>> >> active = models.BooleanField(default=True, editable=False)
>>> >>
>>> >> agregue el campo vencimiento
>>> >> vencimiento = models.DateField(auto_now=True)
>>> >>
>>> >> pero cuando corro python manage.py migrate (despues de haber corrido
>>> >> makemigrations) me devuelve el siguiente error,
>>> >>
>>> >>
>>> >>
>>> >> (env3c) D:\Workspace\Python\SPOServer\SPOServer>python manage.py
>>> >> makemigrations
>>> >> Migrations for 'Main':
>>> >> Main\migrations\0010_auto_20160828_0238.py:
>>> >> - Alter field expire_date on catamaran
>>> >>
>>> >> (env3c) D:\Workspace\Python\SPOServer\SPOServer>python manage.py
>>> >> migrate
>>> >> Operations to perform:
>>> >> Apply all migrations: Main, admin, auth, contenttypes, sessions
>>> >> Running migrations:
>>> >> Rendering model states... DONE
>>> >> Applying Main.0005_auto_20160828_0233...Traceback (most recent call
>>> >> last):
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\utils
>>> >> .py", line 64, in execute
>>> >> return self.cursor.execute(sql, params)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\sqlit
>>> >> e3\base.py", line 337, in execute
>>> >> return Database.Cursor.execute(self, query, params)
>>> >> sqlite3.IntegrityError: NOT NULL constraint failed:
>>> >> Main_catamaran.expire_date
>>> >>
>>> >> The above exception was the direct cause of the following exception:
>>> >>
>>> >> Traceback (most recent call last):
>>> >> File "manage.py", line 22, in <module>
>>> >> execute_from_command_line(sys.argv)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\core\management\_
>>> >> _init__.py", line 367, in execute_from_command_line
>>> >> utility.execute()
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\core\management\_
>>> >> _init__.py", line 359, in execute
>>> >> self.fetch_command(subcommand).run_from_argv(self.argv)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\core\management\b
>>> >> ase.py", line 305, in run_from_argv
>>> >> self.execute(*args, **cmd_options)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\core\management\b
>>> >> ase.py", line 356, in execute
>>> >> output = self.handle(*args, **options)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\core\management\c
>>> >> ommands\migrate.py", line 202, in handle
>>> >> targets, plan, fake=fake, fake_initial=fake_initial
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\migrations\exe
>>> >> cutor.py", line 97, in migrate
>>> >> state = self._migrate_all_forwards(plan, full_plan, fake=fake,
>>> >> fake_initial=
>>> >> fake_initial)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\migrations\exe
>>> >> cutor.py", line 132, in _migrate_all_forwards
>>> >> state = self.apply_migration(state, migration, fake=fake,
>>> >> fake_initial=fake_
>>> >> initial)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\migrations\exe
>>> >> cutor.py", line 237, in apply_migration
>>> >> state = migration.apply(state, schema_editor)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\migrations\mig
>>> >> ration.py", line 129, in apply
>>> >> operation.database_forwards(self.app_label, schema_editor,
>>> >> old_state,
>>> >> projec
>>> >> t_state)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\migrations\ope
>>> >> rations\fields.py", line 84, in database_forwards
>>> >> field,
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\sqlit
>>> >> e3\schema.py", line 231, in add_field
>>> >> self._remake_table(model, create_fields=[field])
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\sqlit
>>> >> e3\schema.py", line 199, in _remake_table
>>> >> self.quote_name(model._meta.db_table),
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\base\
>>> >> schema.py", line 112, in execute
>>> >> cursor.execute(sql, params)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\utils
>>> >> .py", line 79, in execute
>>> >> return super(CursorDebugWrapper, self).execute(sql, params)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\utils
>>> >> .py", line 64, in execute
>>> >> return self.cursor.execute(sql, params)
>>> >> File
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\utils.py",
>>> >> lin
>>> >> e 94, in __exit__
>>> >> six.reraise(dj_exc_type, dj_exc_value, traceback)
>>> >> File
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\utils\six.py",
>>> >> li
>>> >> ne 685, in reraise
>>> >> raise value.with_traceback(tb)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\utils
>>> >> .py", line 64, in execute
>>> >> return self.cursor.execute(sql, params)
>>> >> File
>>> >>
>>> >> "D:\Workspace\virtualenv\env3c\lib\site-packages\django\db\backends\sqlit
>>> >> e3\base.py", line 337, in execute
>>> >> return Database.Cursor.execute(self, query, params)
>>> >> django.db.utils.IntegrityError: NOT NULL constraint failed:
>>> >> Main_catamaran.expir
>>> >> e_date
>>> >>
>>> >> (env3c) D:\Workspace\Python\SPOServer\SPOServer>
>>> >>
>>> >> alguna manera de agregar esto por django o tendre que hacerlo a mano
>>> >> en
>>> >> SQLite
>>> >> Estoy usando Django 1.10 y Python 3.5.2 32bit sobre Windows por si
>>> >> sirve
>>> >> de algo
>>> >>
>>> >> gracias
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >>
>>> >> Ricardo Daniel Quiroga
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> pyar mailing list pyar en python.org.ar
>>> >> http://listas.python.org.ar/listinfo/pyar
>>> >>
>>> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>> >>
>>> >> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> >> Argentina - http://www.usla.org.ar
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > pyar mailing list pyar en python.org.ar
>>> > http://listas.python.org.ar/listinfo/pyar
>>> >
>>> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>> >
>>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> > Argentina - http://www.usla.org.ar
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>
>>
>>
>>
>> --
>>
>> Ricardo Daniel Quiroga
>>
>
>
>
> --
>
> Ricardo Daniel Quiroga
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
Más información sobre la lista de distribución pyar