gpt4 book ai didi

git - 使用 git push 保存 .sqlite

转载 作者:太空狗 更新时间:2023-10-29 13:45:49 28 4
gpt4 key购买 nike

我在 Heroku 上有一个 php 应用程序,用户数据存储在 sqlite 中。每次我更新我的 php 文件并将其推送到 Heroku 时,本地 sqlite 文件也会更新......这意味着我丢失了工作数据并获得了启动数据。

将文件包含在 .gitignore 中可确保该文件对 Heroku 应用程序不可用。它只是从远程 git 存储库中删除文件。

git update-index --assume-unchanged 无法标记 sqlite 文件。它给我一个错误,说“无法标记文件”。

需要帮助创建一次 sqlite 文件,然后根本不更新/删除。感谢您的建议。

最佳答案

将文件掩码添加到 .gitignore 本身不会执行任何操作,当然也不会从远程存储库中删除文件(阅读更多 here)。

一般来说,将 SQLite 数据库存储在源代码控制(包括 git)下确实是个坏主意。最好的解决方案是创建脚本,必要时创建模板数据库。该脚本可能如下所示:

database.sql:

BEGIN TRANSACTION; -- wrap everything into one transaction
-- create tables, always use NOT EXISTS:
CREATE TABLE IF NOT EXISTS items (
item_id INTEGER AUTOINCREMENT PRIMARY KEY,
item_name VARCHAR(32)
);
-- create indexes, always use NOT EXISTS:
CREATE INDEX IF NOT EXISTS items_item_name ON items (item_name);
-- add more CREATE TABLE and/or CREATE INDEX statements...

COMMIT;

然后您可以使用以下命令执行此脚本:

sqlite3 -init database.sql database.db ""

如果您第一次执行它,如果database.db 不存在,则会创建它。如果你第二次执行它,什么也不会发生。但是,您可以稍后决定将更多索引或表添加到您的 database.sql(这将受源代码控制),稍后执行它会将丢失的对象添加到您的数据库中。

关于git - 使用 git push 保存 .sqlite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18934867/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com