Donal McBreen
0f77202d8f
Remove redundant fields from search select
2025-11-17 09:12:17 -05:00
Donal McBreen
3aa4a1a562
Shard the search index into 16 tables
...
Create search_index_0 to search_index_15 tables and shard each index by
account id. MySQL has no ability to pre-filter fulltext indexes by
another field so this is the best bet for improving performance.
Each fulltest index internally creates 11 sub tables (see
https://dev.mysql.com/doc/refman/8.4/en/innodb-fulltext-index.html ) so
actually we have 192 tables in total here.
The search_index table name is generated dynamically based on the
account_id.
2025-11-17 09:12:17 -05:00
Donal McBreen
996140e053
Add non transactional search tests
...
MySQL fulltext indexes are only updated on commit. Use a single test in
each file to avoid repeated setup.
2025-11-17 09:12:17 -05:00
Donal McBreen
ddd7fe082a
Ensure the mentioning scope search works
...
Include the filter by accessible board ids to avoid large joins from the
search_index table. Drop the unused search scope.
2025-11-17 09:12:17 -05:00
Stanko K.R.
a41085fe00
Show full comment, description or title
2025-11-17 09:12:17 -05:00
Stanko K.R.
2c3062fd86
Add a stemmer and highlighter
2025-11-17 09:12:17 -05:00
Donal McBreen
e8abc66eba
MySQL search
...
Add a single search_index table for full-text search of cards and
comments.
For the search there is a full-text index on the title and content
columns. The board_ids is also included in the table and accessible
board ids are pre-loaded and included in the search query. This allows
us to filter out inaccessible records before joining with other tables.
Right now the search is just using boolean search. This would give us
a bunch of syntax options
(see https://dev.mysql.com/doc/refman/8.4/en/fulltext-boolean.html )
except the search query filters those out.
I've removed the searchable_by method for now - everything is built
on the assumption that there's a single search index table and all data
must fit into it.
Queries are written in SQL, we don't have a SearchIndex ActiveRecord
model. That's because we'll likely want to shard the table and it will
be simpler to just keep with the raw SQL for that.
There's no stemming, highlighting or snippet extraction yet - we are
dumping the full description in the search results.
Data can be reindexed with the search:reindex rake task.
2025-11-17 09:12:17 -05:00
Mike Dalessio
c557f1424b
rubocop: ignore db/migrate
...
because at least one of those files is machine-generated
2025-11-17 09:12:17 -05:00
Stanko K.R.
32d96db7d9
Replace card id with card number
2025-11-17 09:12:15 -05:00
Kevin McConnell
915c1202f8
Initial minimal primary/replica switching
2025-11-17 09:11:57 -05:00
Stanko K.R.
906e82a346
Optimize card and comment imports
2025-11-17 09:11:57 -05:00
Stanko K.R.
5c86d307be
Fix import bugs with a real prod account
2025-11-17 09:11:57 -05:00
Kevin McConnell
4e44cd5444
Flatten schema migrations
2025-11-17 09:11:57 -05:00
Mike Dalessio
fa964240e9
Get account test passing
2025-11-17 09:11:57 -05:00
Mike Dalessio
fbda61f45d
Remove TODO comment that I completed
2025-11-17 09:11:57 -05:00
Mike Dalessio
ff8d786144
Filter boards by account
2025-11-17 09:11:57 -05:00
Mike Dalessio
dbf66f9a50
Constrain user queries to the current or relevant account
2025-11-17 09:11:57 -05:00
Mike Dalessio
93b2cef419
Delete unused script migrate-primary-db
2025-11-17 09:11:57 -05:00
Mike Dalessio
29cf6485e4
Drop the migrations audit from CI
2025-11-17 09:11:57 -05:00
Mike Dalessio
b5197fe6d3
Fix notifications to use the user's account
2025-11-17 09:11:57 -05:00
Mike Dalessio
9697f7b43d
Replace some instances of Current.account with model account
2025-11-17 09:11:57 -05:00
Mike Dalessio
bca694f9f8
Fix action cable connection
2025-11-17 09:11:57 -05:00
Mike Dalessio
4ac87a9ad9
Fix seeds
2025-11-17 09:11:57 -05:00
Mike Dalessio
5f15966ecc
Fix PWA manifest
2025-11-17 09:11:56 -05:00
Mike Dalessio
895f5514b5
rubocop fixes
2025-11-17 09:11:52 -05:00
Mike Dalessio
c38f27f3b4
test: fix or skip signup controller tests
2025-11-17 09:11:47 -05:00
Mike Dalessio
905cf759d8
test: fixing or skipping more tests
2025-11-17 09:11:47 -05:00
Mike Dalessio
89d1299ec0
Fix authentication on "untenanted" controllers
...
trying out the name "disallow_account_scope" for this, but I don't
think it's quite right yet.
2025-11-17 09:11:47 -05:00
Mike Dalessio
086a9ceada
Revert some auth pieces of "Account.sole → Current.account"
2025-11-17 09:11:45 -05:00
Mike Dalessio
f1a53f3088
test: fix join codes view
2025-11-17 09:11:42 -05:00
Stanko K.R.
c894bcc3b2
Fix event creation
2025-11-17 09:11:42 -05:00
Stanko K.R.
8b1ca5e7fb
Remove unused account associations
2025-11-17 09:11:42 -05:00
Stanko K.R.
1d6dd09272
Update fixutres
2025-11-17 09:11:42 -05:00
Stanko K.R.
ba3f6b188e
Add account_id to everything
2025-11-17 09:11:42 -05:00
Mike Dalessio
bca4318cd4
Turbo test helper
2025-11-17 09:11:42 -05:00
Mike Dalessio
7bd697f75e
test: Skip search tests, fix others, and skip a few hard ones
2025-11-17 09:11:42 -05:00
Mike Dalessio
157708aeb8
test: Set up Current.account to get more tests passing
...
this is hacky so I left a todo to come back and unwind this
2025-11-17 09:11:42 -05:00
Mike Dalessio
006aa4d6b3
Tests need to set up the script_name properly
...
which requires tweaking fixtures for the memberships and the account
2025-11-17 09:11:42 -05:00
Stanko K.R.
65f97babd9
Create SQLite import script
2025-11-17 09:11:42 -05:00
Mike Dalessio
030433b99d
Remove debugging statements
2025-11-17 09:11:42 -05:00
Mike Dalessio
0414befdfa
Restore solid database schemas.
2025-11-17 09:11:42 -05:00
Mike Dalessio
ec54014832
Add account slug middleware
...
and set Current.account
2025-11-17 09:11:42 -05:00
Mike Dalessio
15b25faaa6
Remove untenanted controller code from fizzy-saas
2025-11-17 09:11:42 -05:00
Mike Dalessio
4ad1718d86
Stub searchable functionality and start to restore login/auth
2025-11-17 09:11:42 -05:00
Mike Dalessio
d6c7fc9e0a
Database config for mysql
2025-11-17 09:11:42 -05:00
Mike Dalessio
52ce8b50cc
Switch to mysql
...
- trilogy adapter
- lots of small migration changes
- notably we lose the search tables which case lots of tests to fail
2025-11-17 09:11:42 -05:00
Mike Dalessio
362427b383
More changes to get setup and tests to run
2025-11-17 09:11:42 -05:00
Mike Dalessio
d41d50d52b
Account.sole → Current.account
...
and some other de-tenant changes, including removing the controller
tenanting concerns
2025-11-17 09:11:40 -05:00
Stanko K.R.
6705b5225f
Remove the untenanted database
2025-11-17 09:11:36 -05:00
Mike Dalessio
4d3c265042
Rip out activerecord-tenanting
...
Co-authored-by: Stanko K.R. <stanko@stanko.io >
2025-11-17 09:11:35 -05:00