What you can do with migration
Table creation Delete table Add column Change column name Change column data type Delete column
Create migration file
The migration file is created when you create the model. It is also possible to create a migration file alone.
rails g model [model name] [attribute name: data type attribute name: data type...] [option] # When generating by itself rails g migration migration name
By executing the above command, a migration file will be created in the db/migrate folder.
What is the right data type? ?
|Official Information||Rough Overview in Japanese|
|string||Character string (1 to 255 characters)|
|text||Long string (1 to 4294967296 characters)|
|integer||integer (4 bytes)|
|bigint||integer (8 bytes)|
|datetime||date and time|
What to do with something similar but different
Which is more suitable, string or text, when dealing with characters
Since string can handle only up to 255 characters, it is recommended to use text when handling data that may have more than 256 characters depending on the state and time. It is common to handle character information such as names, email addresses, company names, etc. with string, and use text for text information such as text and remarks.
Which is better, string or integer when dealing with enums Since it is an enum that can map the integer of hash, if the column that is planned to be handled by the enum is a string, there is no point in incorporating the enum in the first place, so it doesn’t work. Considering that calmly, integer is suitable for the data type of the column to be handled by enum.
Whether integer or bigint is suitable when dealing with id The id can have a huge number of digits as the number of users increases in the future. Considering that the id column is bigint by default from Rails 5.1, you can basically think that bigint is suitable.
In any case, it is safer to select a larger box if there is a possibility that it will not be in the future in the future, rather than matching the current situation.
Rails model naming conventions
In Rails, the table name of the database corresponding to model is plural like members.
However, the class name of model is singular with capital letters like Member.
Also, when creating a model, it is okay to start the member in lowercase like “rails g model member”.
Also, for example, whether you specify member_image or MemberImage, a MemberImage model (table name is member_images) will be created.
However, it is strictly prohibited to use the plural form like members. The Members model will be created. Be sure to create a model in the singular form.