Могу ли я произвольно заменить и восстановить файл db.sqlite3? - PullRequest
0 голосов
/ 18 мая 2019

Я знаю, что файл db.sqlite3 в Django содержит всю базу данных и весь контент внутри нее.Безопасно ли хранить все файлы проекта, файлы *.py, файлы migrations, но заменить файл db.sqlite3 другим.Если оба этих db.sqlite3 файла работают на одной и той же модели базы данных с одинаковыми таблицами, строками, столбцами и всем остальным, то, если я заменю этот файл, он будет работать без проблем.

Я хочу скопировать оригиналdb.sqlite3 файл в другой каталог.Затем я хочу создать новый файл db.sqlite3 в моем проекте.Затем я хочу поработать с новым файлом базы данных и предоставить ему другие данные, чтобы проверить, как с ним будет работать проект.Затем я хочу удалить новый файл db.sqlite3 и восстановить старый файл, который я сохранил в другом каталоге.

Будет ли это работать?И как я могу создать новый db.sqlite3 файл, чистое состояние для помещения тестовых данных?

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

По сути, основная идея моего вопроса заключается в следующем: нужно ли обрабатывать файл db.sqlite3 как простой "текстовый файл" с данными ввода / вывода длянаша программа, что-то, что свободно взаимозаменяемо?

Ответы [ 2 ]

1 голос
/ 18 мая 2019

Вся база данных находится в файле .db.Вы можете безопасно скопировать его в любом направлении, если в базе данных не запущен процесс.Если в базе данных запущен процесс, вы можете увидеть файлы журнала отката или файлы журнала с опережением записи в одном и том же каталоге (если база данных находится в режиме WAL), и если вы оставите их позади, вы рискуете потерять некоторые ожидающие транзакции.Правильное закрытие базы данных обычно приводит к исчезновению этих файлов.

1 голос
/ 18 мая 2019

Да, вся база данных sqlite содержится в одном файле, поэтому вы можете свободно перемещать, заменять, отправлять ее с помощью проекта django (хотя это и не рекомендуется), и она будет работать нормально.

Даже если у вас есть 2 разных проекта с одинаковыми приложениями, одинаковой структурой модели и миграциями, вы можете поменять их местами.

Если вы удалили db.sqlite3 и хотите создать новый, просто запустите python manage.py migrate, и он создаст новую базу данных и применит все миграции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...