Skip to content

Conversation

@RDIL
Copy link
Member

@RDIL RDIL commented Jun 27, 2025

See also: Rap-Genius#15200

Here's the situation:

The normal flow goes:

  1. Install gems
  2. Precompile assets
  3. Run compile tasks buildpack (lets us run whatever we want via an environment variable that contains a list of Rake tasks)

Ideally, we'd seed the database after precompiling assets, as the first of the compile tasks.

BUT, one of the bookmarklet ERB templates makes a DB connection, and errors when seeding has not happened yet!

I considered using another buildpack, but the ruby buildpack installs gems and precompiles, meaning there is no "wiggle room" in between those two to insert a new buildpack. Hence, I've forked the existing one.

RDIL added 3 commits June 25, 2025 11:14
Apparently the bookmarklet needs it in order to determine the latest version. So, we'll just do it a bit earlier than normal.
RDIL added a commit to RDIL/modern_searchlogic that referenced this pull request Aug 23, 2025
In a test environment, or when creating/seeding the database, there are no tables defined in ActiveRecord. This causes an edge case where, if *any* `method_missing` is called (and it gets to MSL), an error will be thrown. This is because accessing `columns_hash` or `column_names` will cause a query to be made that will fail (as it expects the table to already be present in the database).

For getting caught up on the memes, see the following:
- Genius/Rap-Genius#15200
- Genius/heroku-buildpack-ruby#14

Feel free to backport this to Rails 2 - seems pointless since it's On The Way Out (TM) (as it has been for the last decade, but who's counting?!)
RDIL added a commit to RDIL/modern_searchlogic that referenced this pull request Aug 23, 2025
In a test environment, or when creating/seeding the database, there are no tables defined in ActiveRecord. This causes an edge case where, if *any* `method_missing` is called (and it gets to MSL), an error will be thrown. This is because accessing `columns_hash` or `column_names` will cause a query to be made that will fail (as it expects the table to already be present in the database).

For getting caught up on the memes, see the following:
- Genius/Rap-Genius#15200
- Genius/heroku-buildpack-ruby#14

Feel free to backport this to Rails 2 - seems pointless since it's On The Way Out (TM) (as it has been for the last decade, but who's counting?!)
RDIL added a commit to RDIL/modern_searchlogic that referenced this pull request Aug 27, 2025
In a test environment, or when creating/seeding the database, there are no tables defined in ActiveRecord. This causes an edge case where, if *any* `method_missing` is called (and it gets to MSL), an error will be thrown. This is because accessing `columns_hash` or `column_names` will cause a query to be made that will fail (as it expects the table to already be present in the database).

For getting caught up on the memes, see the following:
- Genius/Rap-Genius#15200
- Genius/heroku-buildpack-ruby#14

Feel free to backport this to Rails 2 - seems pointless since it's On The Way Out (TM) (as it has been for the last decade, but who's counting?!)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant