
halalbooking/ruby本文档详细说明HalalBooking项目的开发环境配置,包括依赖安装、项目初始化、代码构建、测试执行及服务器运行等关键流程,适用于开发人员搭建本地开发环境。
psql无法连接服务器,参考解决方案。.ruby-version文件(文件中版本为简写,如3.1),需创建版本别名:
ln -s ~/.rbenv/versions/3.1.2 ~/.rbenv/versions/3.1rvm alias create ruby-3.1.0 3.1.2若在集群模式下运行Puma服务器,Web工作进程可能因"Ethon"库问题崩溃,需禁用fork安全:
bashexport OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
建议在.pumaenv(Puma-dev)、~/.profile或等效文件中设置此环境变量,确保启动Puma前已导出。
bashmake setup
需获取生产环境数据库的"development"版本,执行:
bashmake fetchdb
该命令会自动获取数据库 dump 并恢复为halalbooking数据库。
通过以下make命令可从生产数据库获取样本数据(需SSH访问服务器,当前在oscar服务器执行):
make refreshdb:在服务器上创建新的dump文件(通过脚本),保存为last.dump,后续会被下载为本地hb.dump。make fetchdb:依次执行fetch-dump和restore-dump命令。make fetch-dump:从服务器下载last.dump至本地,保存为项目根目录的hb.dump。make restore-dump:从本地hb.dump恢复数据至本地数据库,应用本地变更后删除hb.dump。make refresh-and-fetchdb:依次执行refreshdb和fetchdb。bashlein fig
性能优化:若需使用合并文件(因性能原因),执行:
bashlein cljsbuild auto front-whitespace # 或 "extranet-whitespace",或两者都指定
该命令仍会监控文件变更。若只需构建一次:
bashlein cljsbuild once front-whitespace # 或 "extranet-whitespace",或两者都指定
清理输出目录:
bashlein clean
lein fig。/dev/cards。bashclj -M:dev
(start)。默认使用PGUSER和PGDATABASE环境变量定义连接。若未设置,将使用当前shell用户作为数据库用户(与psql行为一致),数据库名为"halalbooking"。
如需覆盖默认数据库名,可:
.bash_profile中通过export PGDATABASE=hb导出。PGDATABASE=hb clj -M:dev。默认情况下,Rails在开发环境中会 stub 所有Clojure支持的请求。需确保环境变量HANDLE_CLOJURE_REQUESTS=proxy已设置。
参考clj-kondo编辑器集成文档配置实时 linting。
bashbin/rake spec:all
bashbin/rspec front/spec
基于CLJS的测试:
yarn。若只需运行一次:bashmake cljs-test-auto
bashmake cljs-test-once
基于Capybara的测试:
bashbrew install chromedriver # 首次安装 # 或升级:brew upgrade chromedriver
lein fig。部分测试需手动启动Clojure后端,注意使用测试环境和数据库(halalbooking_test),并使用自定义端口(8091,避免与开发服务器冲突):
bashenv HTTP_KIT__PORT=8091 PGDATABASE=halalbooking_test clojure -M:test -m hb.core
运行测试示例:
bashenv HTTP_KIT__PORT=8091 HANDLE_CLOJURE_REQUESTS=proxy rspec front/spec/features/search_filters_spec.rb
bashbin/rake db:test:prepare
make clj-test-automake clj-test-once准备工作: 安装Selenium:
bashnpm install -g selenium-standalone selenium-standalone install
运行测试:
.hermione.conf.js文件,配置测试环境为staging。lein fig。bashselenium-standalone start
bashyarn run screenshots
执行以下命令启动性能分析环境(本质为生产环境,代码变更后需重启):
bashRAILS_ENV=profiling bin/rails s
参考.circleci/README文件。
yarn run svg-sprite.svg前添加_(如circle_.svg)。CSS_LIVE_RELOAD=true,或启动服务器时指定:
bashCSS_LIVE_RELOAD=true rails s
yarn run watch-css。执行yarn run watch-css。
参考.browserlistrc文件。
rails s启动Rails内置的Puma Web服务器:
bashrails s
puma-dev(替代rails s)Puma-dev是快速零配置的开发服务器,适用于OS X和Linux。
设置方法:
~/.puma-dev目录创建符号链接:
bashcd ~/.puma-dev && ln -s /path/to/halalbooking hb
~/.bash_profile中设置APP_HOST:
bashexport APP_HOST=hb.test
rails c:启动Rails控制台,用于与应用交互(代码变更后需重启)。默认所有任务存储在queue_classic_jobs表(使用QC适配器),但不会自动执行。需并行启动QC worker处理任务(如发送邮件):
bashmake jobs
如需清除所有排队任务:
bashbin/rake qc:truncate
作业入队操作被 stub,可通过断言验证。
不运行周期性任务。
任务存储在queue_classic_jobs表,由多个QC worker处理(参考示例)。周期性任务通过cron调度。
rails c:启动Rails控制台,用于命令行交互(代码变更后需重启)。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务