Comments (5)
Hey @ABewsher, which version of Postgres are you on?
I imagine adding an index would make it faster, but I'd try it on a staging database first. You could also try the approach outlined here, but I haven't tried it myself, and seems like it carries a small performance penalty (slows future writes by 0.5%-1%).
If the index approach works, I think that's a better recommendation since Rails has built-in support for those commands (don't need to use execute
) and schema.rb
can be dumped properly.
from strong_migrations.
In general, I'm a fan of having minimal constraints on the database (unique indexes, but no foreign keys or not null), but I understand not everyone takes that view.
from strong_migrations.
Thanks for your prompt reply @ankane
pg gem version 1.1.4
Postgres 10.7
For now we're just not bothering with the constraint. We did test this on staging before deploying to production, but we'll need more record to test it properly it seems. ;-)
If we do try again on staging (with 7M new records), I'll let you know if the index helps.
from strong_migrations.
Sounds good
from strong_migrations.
Then I ran this:
class AddNullFalseToUserVisibleInEvents < ActiveRecord::Migration[5.1]
def change
change_column_null(:events, :user_visible, false)
end
end
... and it locked the DB 👎Note that I have not used the 4th argument but it was still "dangerous".
Regardless of what I end up doing, this could still do with a warning as even without the 4th argument it still locked things up.
from strong_migrations.
Related Issues (20)
- `StrongMigration.start_after` doesn't respect version on `revert` HOT 1
- Adding a column with a default value should is safe when use mysql(5.7) as database HOT 5
- [Idea] Show check link with error message HOT 1
- Lock timeout when using `add_column` with `enum` type HOT 2
- `add_reference` with concurrent index can be dangerous HOT 2
- [Idea] Provide custom message prefix/suffix message HOT 2
- [Idea] Should add_unique_constraint be considered unsafe? HOT 3
- `StrongMigrations.start_after` does not work HOT 1
- Consider appending to ignored_columns as a best practice HOT 1
- [Idea] Ignore migrations from non-supported adapters HOT 4
- [Idea] safety_assured should require justification HOT 1
- [Idea] Adding auto incrementing primary key does not guarantee that replicas generate the same primary key values (MySQL) HOT 4
- Getting an error complaining about MariaDB Version HOT 3
- [Idea] Add these changes as default in Rails HOT 1
- [Idea] Support custom checks on TableDefinition methods
- Config values in non-Rails apps HOT 1
- Setting NOT NULL on an existing column documentation HOT 3
- Support for CockroachDB Adapter HOT 2
- target_postgresql_version not being set correctly HOT 1
- [Idea] Prevent index removal before concurrent index creation completes HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from strong_migrations.