Skip to content

Commit 302aa41

Browse files
committed
Merge pull request #46939 from fatkodima/fix-dumping-virtual-columns
Fix schema cache dumping of virtual columns
1 parent 629d981 commit 302aa41

File tree

2 files changed

+21
-0
lines changed
  • activerecord/lib/active_record/connection_adapters/postgresql
  • railties/test/application/rake

2 files changed

+21
-0
lines changed

activerecord/lib/active_record/connection_adapters/postgresql/column.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,13 @@ def sql_type
4242

4343
def init_with(coder)
4444
@serial = coder["serial"]
45+
@generated = coder["generated"]
4546
super
4647
end
4748

4849
def encode_with(coder)
4950
coder["serial"] = @serial
51+
coder["generated"] = @generated
5052
super
5153
end
5254

railties/test/application/rake/dbs_test.rb

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,25 @@ def db_schema_cache_dump
469469
db_schema_cache_dump
470470
end
471471

472+
test "db:schema:cache:dump dumps virtual columns" do
473+
Dir.chdir(app_path) do
474+
use_postgresql(database_name: "railties_db")
475+
rails "db:drop", "db:create"
476+
477+
rails "runner", <<~RUBY
478+
ActiveRecord::Base.connection.create_table(:books) do |t|
479+
t.integer :pages
480+
t.virtual :pages_plus_1, type: :integer, as: "pages + 1", stored: true
481+
end
482+
RUBY
483+
484+
rails "db:schema:cache:dump"
485+
486+
virtual_column_exists = rails("runner", "p ActiveRecord::Base.connection.schema_cache.columns('books')[2].virtual?").strip
487+
assert_equal "true", virtual_column_exists
488+
end
489+
end
490+
472491
def db_fixtures_load(expected_database)
473492
Dir.chdir(app_path) do
474493
rails "generate", "model", "book", "title:string"

0 commit comments

Comments
 (0)