create_table with text limits
What does this MR do?
This implements #337792 (closed) and removes create_table_with_constraints
, which was using subtransactions.
We remove the helper in version 2 and extend the Rails' method create_table
to support t.text :something, limit: 128
(adding the limit
attribute).
Additional benefit: We get to use change
again, because it's a standard Rails helper.
For in-flight MRs using create_table_with_constraints
, this will raise and will have to be changed.
How to setup and validate locally (strongly suggested)
Example migration:
create_table :db_guides do |t|
t.bigint :stars, default: 0, null: false
t.text :title, limit: 128
t.text :notes, limit: 1024
t.check_constraint 'stars > 1000', name: 'so_many_stars'
end
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?) -
I have added/updated documentation, or it's not needed. (Is documentation required?) -
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Edited by Andreas Brandl