私はDjangoアプリを持っています SQLite
データベース。このアプリはHerokuにデプロイされています。
誰かがアプリを使用してにデータを追加したときデータベース、SQLiteデータベースが変更されます。しかし、Githubでコードを変更してからこの新しいバージョンのアプリをデプロイすると、sqliteデータベースもデプロイされ(ユーザーによる新しい変更は行われません)、その変更を削除します。
これを防ぐための最善の方法は何ですか?
回答:
回答№1は0解決策は簡単です。 Herokuではsqliteを使用してはいけません。ご存知のように、Herokuのファイルシステムは一時的なものであり、デプロイ間で変更が持続することはありません。さらに、複数のdynoに拡張した場合、それらは同じデータベースを共有しません。
代わりにPostgresアドオンを使用してください。
回答№2の場合は0
私はHerokuについてあまり知りませんが、もしあればHerokuにデータベースファイルをコピーしてから、sqliteファイルを.gitignoreファイルに追加する必要があります。この方法でsqliteファイルは残りのコードと共にHerokuに送信されることはありません。また、リポジトリからsqliteファイルを削除する必要があります。 gitignoreについてさらに検索するDjangoプロジェクト用の一般的な.gitignoreには以下が含まれます -
*.pyc
__pycache__
myvenv
db.sqlite3
.DS_Store
settings.py
これを既存のgitignoreにコピーするか、まだ存在していない場合は新しく作成してください。 gigignoreファイルは通常プロジェクトのルートディレクトリにあります。