db / development.sqlite3在Rails 4中合并冲突

时间:2016-03-31 12:41:38

标签: ruby-on-rails merge sqlite

我在文件private void doLogin(String userName, String password) { //http://obbg.in/api/login.php?action=login&username=tejal+patel+&password=ZGhhcmE5ODk4MjQ4Mzg3%0A byte[] data = new byte[0]; try { data = password.getBytes("UTF-8"); password = Base64.encodeToString(data, Base64.DEFAULT); Ion.with(this) .load("http://obbg.in/api/login.php") .setBodyParameter("action", "login") .setBodyParameter("username", URLEncoder.encode(userName, "utf-8")) .setBodyParameter("password", password) .asString() .setCallback(this); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } @Override public void onCompleted(Exception e, String result) { try { JSONObject jsonObject = new JSONObject(result); JSONArray username = jsonObject.optJSONArray("Result"); etLoginPassword.setText(""); } catch (JSONException e1) { e1.printStackTrace(); } } 中遇到了合并冲突。

db/development.sqlite3

通常我会打开文件(在Cloud9 IDE中),手动编辑冲突,然后完成。

但我无法阅读此文件中的任何内容 - 它看起来像是胡言乱语。

该应用正在开发中。我可以删除该文件,然后运行warning: Cannot merge binary files: db/development.sqlite3 (HEAD vs. nest-questions) Auto-merging db/development.sqlite3 CONFLICT (content): Merge conflict in db/development.sqlite3 ,还是会导致问题?我以前从未手动修改过这个文件。

之前是否有人在rake db:reset解决了冲突并可以提出建议?

1 个答案:

答案 0 :(得分:2)

您无法手动解决db/development.sqlite3的合并问题。当您使用rails consolerails server或等效的应用服务器时,它是幕后使用的SQLite数据库的二进制格式。

典型的方法是确保git忽略这些.sqlite3文件(因为您通常不希望将数据库保存到源代码存储库中)。

要解决:

git rm db/*.sqlite3
git commit -m "Removing SQLite files from git"
rm .gitignore
wget https://raw.githubusercontent.com/github/gitignore/master/Rails.gitignore
mv Rails.gitignore .gitignore
git add .gitignore
git commit -m "Ignoring files that Rails recommends"

此技术将忽略sqlite文件和许多其他文件。请注意,如果有问题的文件已经存储在您的存储库中,系统会提示您像往常一样使用它们。在这些更改生效之前,您需要使用git rm将其从回购邮件中删除。

可以使用db:reset等删除文件,如上所述,但问题将在您采取上述(或类似)步骤之前重复出现。