Форум программистов, компьютерный форум, киберфорум
Python: Django
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 28
1

Как обновить данные в БД?

22.01.2020, 16:12. Показов 1736. Ответов 7
Метки нет (Все метки)

Добрый день, только начал учить Django версии 3.0.2. В файле models.py создал нужные мне модели, сделал миграции и дальше продолжил работать, затем дополнил свои модели новыми полями, удалил старый файл миграции и создал новый, но вот БД не обновилась(не появились новые таблицы и новые столбцы в старых таблицах), БД SQLite3.
С чем это может быть связанно?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2020, 16:12
Ответы с готовыми решениями:

Как обновить текущие данные в реквизитах справочника, получая данные из массива?
Получаю данные из БД в JSON формате, и засовываю их в массив. Как можно обновить значения в...

Как обновить данные на форме у клиентов, сразу же когда обновились данные в базе
Нужно реализовать мини-чат. Клиент пишет текст в таблицу, и как только текст добавился в таблицу...

Как обновить данные в форме?
Помогите пожалуйста обновить данные в форме. Открываю форму в режиме добаления новых записей....

Как обновить данные отчета?
Здравствуйте! У меня такая ситуация имеется отчет, сформированный по таблице. Предполагается что...

7
1026 / 562 / 241
Регистрация: 15.01.2019
Сообщений: 2,173
Записей в блоге: 1
22.01.2020, 19:30 2
MarshMaIIow, потому что в бд есть таблица django_migrations. Нужно найти там запись, которая отвечает за ранее проведённую вами миграцию и удалить её. Затем провести новую. Скорее всего, с флагом --fake.
0
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 28
23.01.2020, 14:17  [ТС] 3
Я так сделал и в таблицы django_migration добавились миграции, но другие таблицы не обновились
0
1026 / 562 / 241
Регистрация: 15.01.2019
Сообщений: 2,173
Записей в блоге: 1
23.01.2020, 14:32 4
MarshMaIIow, ничего непонятно. Давай сначала и на русском желательно, с командами.

Добавлено через 2 минуты
MarshMaIIow, точно удалил с бд из таблицы django_migrations старую миграцию?
0
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 28
23.01.2020, 15:32  [ТС] 5
Первый скрин до проведения миграций
я в консоли прописываю python manage.py makemigrations
дальше python manage.py migrate
На этом этапе он выдает кучу текста в консоль

Operations to perform:
Apply all migrations: admin, app, auth, contenttypes, sessions
Running migrations:
Applying app.0001_initial...Traceback (most recent call last):
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 394, in execute
return Database.Cursor.execute(self, query)
sqlite3.OperationalError: table "app_student" already exists

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute
output = self.handle(*args, **options)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 231, in handle
post_migrate_state = executor.migrate(
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 245, in apply_migration
state = migration.apply(state, schema_editor)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/migrations/operations/models.py", line 92, in database_forwards
schema_editor.create_model(model)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 324, in create_model
self.execute(sql, params or None)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 142, in execute
cursor.execute(sql, params)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 100, in execute
return super().execute(sql, params)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
return self.cursor.execute(sql)
File "/Users/Valera/PycharmProjects/course_work/venv/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py", line 394, in execute
return Database.Cursor.execute(self, query)
django.db.utils.OperationalError: table "app_student" already exists

после это в базе данных в таблице django_migrations не появляются поля с миграциями

Но если в место python manage.py migrate я пишу python manage.py migrate --fake
то в таблице появляются миграции (второй скрин), но данные в других таблицах не обновляются и таблицы по новым моделям не создаются
0
Миниатюры
Как обновить данные в БД?   Как обновить данные в БД?  
1026 / 562 / 241
Регистрация: 15.01.2019
Сообщений: 2,173
Записей в блоге: 1
23.01.2020, 16:53 6
Цитата Сообщение от MarshMaIIow Посмотреть сообщение
то в таблице появляются миграции (второй скрин), но данные в других таблицах не обновляются и таблицы по новым моделям не создаются
Бред какой-то. Если миграции проходят, то таблицы должны обновится.
Покажи код миграции самой и структуру таблицы в бд.
0
0 / 0 / 0
Регистрация: 20.02.2019
Сообщений: 28
23.01.2020, 17:50  [ТС] 7
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Generated by Django 3.0.2 on 2020-01-23 12:26
 
from django.db import migrations, models
import django.db.models.deletion
 
 
class Migration(migrations.Migration):
 
    initial = True
 
    dependencies = [
    ]
 
    operations = [
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('article_title', models.CharField(max_length=100, verbose_name='Название статьи')),
                ('article_text', models.TextField(verbose_name='Текст статьи')),
                ('date_release', models.DateTimeField(verbose_name='Дата создания статьи')),
            ],
            options={
                'verbose_name': 'Статья',
                'verbose_name_plural': 'Статьи',
            },
        ),
        migrations.CreateModel(
            name='Student',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('surname', models.CharField(max_length=20, verbose_name=' Фамилия')),
                ('name', models.CharField(max_length=20, verbose_name='Имя')),
                ('patronymic', models.CharField(max_length=20, verbose_name='Отчество')),
                ('age', models.IntegerField(blank=True, verbose_name='Возраст')),
                ('course', models.IntegerField(verbose_name='Курс')),
                ('group', models.CharField(max_length=10, verbose_name='Название группы')),
                ('description', models.TextField(blank=True, verbose_name='Описание студента')),
            ],
            options={
                'verbose_name': 'Студент',
                'verbose_name_plural': 'Студенты',
            },
        ),
        migrations.CreateModel(
            name='Teacher',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('surname', models.CharField(max_length=20, verbose_name='Фамилия')),
                ('name', models.CharField(max_length=20, verbose_name='Имя')),
                ('patronymic', models.CharField(max_length=20, verbose_name='Отчество')),
                ('subject', models.CharField(blank=True, max_length=100, verbose_name='Предмет')),
            ],
            options={
                'verbose_name': 'Преподаватель',
                'verbose_name_plural': 'Преподаватели',
            },
        ),
        migrations.CreateModel(
            name='Timetable_groups',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('group', models.CharField(max_length=10, verbose_name='Название группы')),
            ],
        ),
        migrations.CreateModel(
            name='Comment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('author_name', models.CharField(max_length=10, verbose_name='Имя автора комментария')),
                ('comment_text', models.TextField(verbose_name='Текст комментария')),
                ('article', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.Article')),
            ],
            options={
                'verbose_name': 'Комментарий',
                'verbose_name_plural': 'Комментарии',
            },
        ),
    ]
0
Миниатюры
Как обновить данные в БД?   Как обновить данные в БД?  
1026 / 562 / 241
Регистрация: 15.01.2019
Сообщений: 2,173
Записей в блоге: 1
23.01.2020, 23:42 8
Лучший ответ Сообщение было отмечено MarshMaIIow как решение

Решение

MarshMaIIow, предполагаю, что ты не все нужные записи из django_migrations удалил
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2020, 23:42

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как обновить данные в ComboBox-е?
Добрый день! Подскажите плиз. Приложение на WPF. Задача: Есть две формы. Основная форма...

Как обновить данные query
Была таблица раньше заполнена значениями. После я подключил к бд, все удалил и заполнил новыми...

Как обновить данные в таблице из формы
Всем здрасьте. Пишу этот вопрос от бессилия, перерыл уже кучу всяких постов и нигде нет решения...

Как обновить данные UPDATE и PHP?
Понимаю что вопрос очень глупый но я новичок в ПХП. Есть 2 таблицы transactions и product В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.