| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |
|
| |\ \
| | | |
| | | |
| | | | |
Make ActiveSupport frozen-string-literal friendly.
|
| | |/ |
|
| |/
| |
| |
| |
| |
| | |
`test_middleware_caches` is sometimes failed since #29454.
The failure is due to schema statements are affected by query caching.
Bypassing query caching for schema statements to avoid the issue.
|
|/ |
|
|
|
|
| |
Fixes #29460.
|
|
|
|
| |
This option was added in b9fa354. But it does not seem to work.
|
| |
|
|\
| |
| |
| |
| | |
Nerian/document_support_for_composite_primary_keys
Document support for composite primary keys
|
| | |
|
|/
|
|
| |
present.
|
| |
|
| |
|
|\
| |
| | |
Extract `data_source_sql` to refactor data source statements
|
| | |
|
| |
| |
| |
| |
| | |
Use `SchemaMigration.all_versions` instead of
`SchemaMigration.all.map(&:version)` to avoid to instantiate AR objects.
|
| |
| |
| |
| | |
Simply use `SchemaMigration.table_name` instead.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Related #25174.
`db:schema:load` doesn't work with subdirectories like previous
`db:migrate:status`. `Migrator.migration_files` should be used in
`assume_migrated_upto_version` to fix the issue.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Follow up of #26266.
The default type of `primary_key` and `references` were changed to
`bigint` since #26266. But `create_join_table` column type is still
`integer`. It should respect `references` column type.
|
|\ \
| | |
| | |
| | |
| | | |
kamipo/fix_remove_reference_to_multiple_foreign_keys_in_the_same_table
Fix `remove_reference` to multiple foreign keys in the same table
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The native timestamp type in MySQL is different from datetime type.
Internal representation of the timestamp type is UNIX time, This means
that timestamp columns are affected by time zone.
```
> SET time_zone = '+00:00';
Query OK, 0 rows affected (0.00 sec)
> INSERT INTO time_with_zone(ts,dt) VALUES (NOW(),NOW());
Query OK, 1 row affected (0.02 sec)
> SELECT * FROM time_with_zone;
+---------------------+---------------------+
| ts | dt |
+---------------------+---------------------+
| 2016-02-07 22:11:44 | 2016-02-07 22:11:44 |
+---------------------+---------------------+
1 row in set (0.00 sec)
> SET time_zone = '-08:00';
Query OK, 0 rows affected (0.00 sec)
> SELECT * FROM time_with_zone;
+---------------------+---------------------+
| ts | dt |
+---------------------+---------------------+
| 2016-02-07 14:11:44 | 2016-02-07 22:11:44 |
+---------------------+---------------------+
1 row in set (0.00 sec)
```
|
| |/
|/|
| |
| |
| | |
Extra `data_source_exists?(table_name)` is unneeded if
`drop_table(table_name, if_exists: true)` directly.
|
|\ \
| | |
| | | |
Fix `remove_index` to be able to remove expression indexes
|
| | |
| | |
| | |
| | | |
Fixes #26635, #26641.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The `default` arg of `index_name_exists?` is only used the adapter does
not implemented `indexes`. But currently all adapters implemented
`indexes` (See #26688). Therefore the `default` arg is never used.
|
| |/
|/|
| |
| | |
Closes #27979
|
| |
| |
| |
| |
| |
| | |
Column options are passed as an hash args then used as `options` hash in
`add_column_options!`. Converting args to attributes is inconvinient for
using options as an hash.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Follow up to #26266.
The default type of `primary_key` and `references` were changed to
`bigint` since #26266. But legacy migration and sqlite3 adapter should
keep its previous behavior.
|
| |
| |
| |
| |
| |
| | |
`ColumnDumper#migration_keys` was extracted to customize keys for
standardized column arguments widths. But the feature was removed in
df84e98. The internal method is no longer used for that.
|
| |
| |
| |
| |
| |
| | |
`initialize_internal_metadata_table`
These internal initialize methods are no longer used internally.
|
| |
| |
| |
| |
| | |
This reverts commit 39c77eb1843f79925c7195e8869afc7cb7323682, reversing
changes made to 9f6f51be78f8807e18fc6562c57af2fdbf8ccb56.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
`initialize_internal_metadata_table` internal public methods
These internal methods accidentally appeared in the doc, and so almost
useless. It is enough to create these internal tables directly, and
indeed do so in several places.
https://github.com/rails/rails/blob/v5.0.1/activerecord/lib/active_record/schema.rb#L55
https://github.com/rails/rails/blob/v5.0.1/activerecord/lib/active_record/railties/databases.rake#L6
https://github.com/rails/rails/blob/v5.0.1/activerecord/lib/active_record/tasks/database_tasks.rb#L230
|
| |
| |
| |
| |
| | |
Passing `name` to `tables` is already deprecated at #21601.
Passing `name` to `indexes` is also unused.
|
|\ \
| | |
| | | |
Add a quote to an SQL insert statement of schema migration
|
| | | |
|
| | | |
|
| |/
|/|
| |
| |
| |
| | |
Some methods were added to public API in
5b14129d8d4ad302b4e11df6bd5c7891b75f393c and they should be not part of
the public API.
|
| | |
|
|/ |
|
|\
| |
| | |
Fix `add_index` to normalize column names and options
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently does not work the following code.
```ruby
add_index(:people, ["last_name", "first_name"], order: { last_name: :desc, first_name: :asc })
```
Normalize column names and options to fix the issue.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
SQLite's default query interface ignores anything after the first
semicolon in a query. This is actually quite common behavior in database
drivers, especially when dealing with code paths for prepared statements
(which we are). While this should only affect SQLite, as I'm not aware
of any drivers which don't support multi-insert. Even if this does
affect other third party drivers though, I'd prefer not to assume that
more than one query can be executed per call to `execute`.
Fixes #26948.
Close #27242.
|
|\ \
| | |
| | | |
Remove unnecessary `respond_to?(:indexes)` checking
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently all adapters (postgresql, mysql2, sqlite3, oracle-enhanced,
and sqlserver) implemented `indexes` and schema dumper expects
implemented `indexes`.
https://github.com/rails/rails/blob/v5.0.0/activerecord/lib/active_record/schema_dumper.rb#L208
Therefore `respond_to?(:indexes)` checking is unnecessary.
|
| |
| |
| |
| | |
Follow up to 99cf7558000090668b137085bfe6bcc06c4571dc.
|
| |
| |
| |
| | |
`migration_keys` includes `name` but `name` is not a column option.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
```ruby
# Before
t.index ["firm_id", "type", "rating"], name: "company_index", order: {"rating"=>:desc}, using: :btree
# After
t.index ["firm_id", "type", "rating"], name: "company_index", order: { rating: :desc }, using: :btree
```
|