- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将 Rails 应用程序从 svn 存储库上传到我的服务器。在我的本地主机中,它工作正常,但是当我尝试通过 Chrome 访问时,出现以下错误:
There appears to be a database problem.
Your config/database.yml may not be written correctly. Please check it and fix any errors.
Your database schema may be out of date or nonexistant. Please run rake db:migrate to ensure that the database schema is up-to-date.
The database server may not be running. Please check whether it's running, and start it if it isn't.
我不知道该怎么做,因为这是我第一次尝试上传 Rails 项目,并且我正在远程服务器的本地主机中执行相同的操作。
顺便问一下,我也应该通过 ssh 连接运行 Rails 吗?
最佳答案
更新:要做的第一件事是接受部署方面的教育:start here on the Rails site .
所以问题是,在您的服务器上您需要设置一个数据库,就像在本地计算机上一样。从 SVN 检查代码只能得到应用程序,而不能得到数据库。
您在标题中提到您已在服务器上设置了 Passenger。 Passenger 是 Apache(或 Nginx)的一个模块,它取代 rails s
您在开发中使用的命令。您需要在此乘客配置文件中设置 RailsEnv <something>
确定应用程序启动和运行的内容以及方式。
如果数据库服务器相同(例如两个平台上的 MySQL)并且环境相同(例如“开发”),并且如果 app/db/database.yml
文件已 checkin 源代码管理,然后向前跳。
如果您的数据库和环境不同(例如开发中的 SQLLite 和生产中的 MySQL),那么您需要在 database.yml 中添加必要的配置 - 数据库名称、主机、端口、用户名、环境密码(并根据环境在 Gemfile 中指定正确的数据库 gem)。如果您要存储密码,我不建议检查database.yml 文件,但这是一个单独的主题。最后,您需要在服务器上的database.yml 中拥有正确的数据库配置。
然后,您可以运行bundle exec rake db:setup
从应用程序的根目录到服务器上。这将使用当前模式初始化数据库,并运行所需的任何 seeds.rb 设置。检查rake -T
查看您可能考虑的其他选项。
完成后,后续部署要求您从 SVN 检查最新代码,并且通常重新启动应用程序(对于 Passenger,这是通过应用程序根目录中的命令 touch tmp/restart.txt
完成的。如果您已对数据库结构,重启前,运行 bundle exec rake db:migrate
哦,是的,在生产中,如果您使用默认环境,您还需要运行 bundle exec rake assets:precompile
第一次,以及之后的每次(如果您添加了图像、更改了 javascript/coffeescript 或 css/sass 文件)。
话虽如此,@rwilliams 关于 Capistrano 的评论绝对是您想要考虑的事情。正如您所看到的,部署是很棘手的,并且随着您的应用程序变得越来越大,您会希望它变得简单。 Capistrano 允许您设置一个脚本,使部署成为像 cap deploy
这样的命令。或cap staging deploy:migrations
。有很多东西需要学习,但值得付出努力。
关于java - Rails 将 Rails 应用程序上传到 Passenger 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630181/
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我正在尝试创建一个可用作 OpenGL 测试工具的示例程序。到目前为止,我的那个似乎可以工作,但似乎忽略了通过统一变量 MVPMatrix 传递的 MVP 矩阵。当我添加代码以读回制服并检查它是否确实
感谢您帮助我,这是有关我的代码的部分。 printf("Thank you, now please enter the logic gate"); scanf("%s", &C); if (C ==
public static void ejemplosString(String palabra){ char[] letras = palabra.toCharArray();
所以,我有一个 php 应用程序,通过 cgi 和 nginx 运行。我有一个 .jar 程序,用于在条形码打印机(Zebra)上打印条形码,猜猜看是什么!。 我的 php 应用程序使用 exec()
我遇到的唯一问题是 getAll() 方法,它似乎在 PersonnelController 类中的位置立即运行。我也曾在其他很多地方尝试过,但都没有成功。 setAll() 方法看起来不错,我已经测
我是一名优秀的程序员,十分优秀!