Any regular process which involves dropping and recreating millions of rows of a table should be rethought architecture-wise, regardless if this was D1 or Postgres. If I was stuck on such a process, i'd probably run a blue/green deployment on this table to keep both pre-post hot to avoid migration downtime.
Given that will presumably replicate over time, and increase the PoP's it exists in, replacing the entire database will destroy that replication and you'll start from step 1
Hi. I encountered a consistent issue when editing a row in a D1 table via the dashboard. Attempting to edit the following string causes a 404 Bad Request:
I'm not exactly sure which character is triggering the error β it might be due to a special character or even an invisible whitespace β but the issue is 100% reproducible when trying to update a row containing this exact value.
Bulk import API causing the database to be unusable (which is documented to be fair), the D1 API having severe rate limits (worked around by using our own worker as a proxy for SQL commands), some issue internally with D1 causing huge latency after we replaced a bulk of the data within the database that the team fixed
We are using D1 in a slightly abnormal way, as a lookup table basically, so you probably won't experience the same problems if you're using it as a more traditional database
Yes, the issue happens when click "Update" on a row that contains that string the value ends up in the URL, and that's when the 400 error oCcurs. So it seems like the string being placed in the URL is causing the problem.
its likely a character that can't be in a url, like the one used as a space character, the browser is interpreting it as a space etc and that causes the 404
I would encourage people to try this out, and please give us feedback. Tell us cases it broke for you, or didn't do what you expected. Note that it's "beta". We are aware of some specific issues and are fixed as we speak to be rolled out over the next few weeks, so do your own testing to see if fits your workloads too.
IMO at least for me the session API adds waaay too much work to bother implement it. Ideally I was hoping cf would just figure this out like turso does
Right now I simply use cache & KV which give me pretty much the same results but it's simpler and easier to understand (I know it's eventually consistent, but that works for me)