-
-
Notifications
You must be signed in to change notification settings - Fork 638
Add database check to bin/dev before starting server #2133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
When running bin/dev on a fresh checkout or after database cleanup, the script now checks if the database is set up before starting all services. This prevents confusing errors buried in Foreman/Overmind logs and provides clear guidance on how to fix the issue. The check handles three cases: - No database exists: suggests db:setup or db:create - Pending migrations: suggests db:migrate - Connection errors: shows troubleshooting steps If Rails/ActiveRecord isn't available, or if an unexpected error occurs, the check is skipped to allow apps without databases to continue. Closes #2099 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
|
Warning Rate limit exceeded@justin808 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 19 minutes and 4 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (5)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Code Review for PR #2133✅ Overall AssessmentThis is a well-crafted PR that adds a helpful developer experience feature. The code is clean, well-tested, and follows the project's conventions. I found a few areas for improvement. 🎯 Strengths
🔴 Critical Issues1. Missing RBS Type SignatureAccording to CLAUDE.md: When creating new Ruby files in
Action Required: # react_on_rails/sig/react_on_rails/dev/database_checker.rbs
module ReactOnRails
module Dev
class DatabaseChecker
def self.check_database: () -> bool
private
def self.rails_available?: () -> bool
def self.check_and_report_database: () -> bool
def self.database_ready?: () -> bool
def self.print_check_header: () -> void
def self.print_database_ok: () -> void
def self.print_database_failed: () -> void
end
end
endThen add to check "lib/react_on_rails/dev/database_checker.rb"
|
Code Review for PR #2133This is a well-designed and thoughtfully implemented feature that significantly improves the developer experience. The code quality is high with excellent test coverage. Here's my detailed analysis: ✅ Strengths1. Excellent Code Organization
2. Comprehensive Error Handling
3. Outstanding Test Coverage
4. Great User Experience
🔍 Observations & Suggestions1. Minor: Redundant Check in
|
- Refactor instance variables to result object pattern for thread safety - database_ready? now returns a Hash with :ready, :error_type, :error_message - print_database_failed now takes error_type and error_message as parameters - This makes the code thread-safe and improves maintainability - Add RBS type signatures (required by project standards) - Created sig/react_on_rails/dev/database_checker.rbs - Added to Steepfile (alphabetically ordered) - Validated with bundle exec rake rbs:validate - Add test case for DEBUG=false scenario - Verifies no warning is output when DEBUG is not enabled 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
Review Feedback AddressedThanks for the thorough code review! I've addressed all the critical and important items in commit 22c3308: ✅ CRITICAL: RBS Type Signatures (Fixed)
✅ IMPORTANT: Thread Safety (Fixed)
✅ Test Coverage (Fixed)
ℹ️ Notes on Other Suggestions
|
Summary
bin/devbefore starting development serverProblem
When running
bin/devon a fresh checkout or after database cleanup, the script starts all services without checking if the database is set up. This leads to:db:setupordb:migrateis neededSolution
Added
DatabaseCheckerclass that checks database status before starting processes. Handles three cases:db:setupordb:createdb:migrateIf Rails/ActiveRecord isn't available, or if an unexpected error occurs, the check is skipped to allow apps without databases to continue.
Test plan
DatabaseCheckerclass passCloses #2099
🤖 Generated with Claude Code