Hi,
The error still comes if I can my code in these ways.
class Transaction
include DataMapper::Resource
property :tid, Serial
property :type, Discriminator
property :comment, String, :length => 140
property :created_at, DateTime
belongs_to :loan
end
class Agreement < Transaction
end
Error:
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:70:in
`execute_non_query': duplicate column name: tid (DataObjects::SyntaxError)
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:70:in
`block (2 levels) in upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:64:in
`map'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:64:in
`block in upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-do-adapter-1.0.2/lib/dm-do-adapter/adapter.rb:260:in
`with_connection'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:63:in
`upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:71:in
`upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:143:in
`auto_upgrade!'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:145:in
`auto_upgrade!'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:45:in
`block in repository_execute'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:69:in
`block (2 levels) in each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:68:in
`block in each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:69:in
`block in each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:44:in
`repository_execute'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:27:in
`auto_upgrade!'
from /Users/siegfried/Projects/eIOU/models.rb:114:in `<module:Models>'
from /Users/siegfried/Projects/eIOU/models.rb:12:in `<module:EIOU>'
from /Users/siegfried/Projects/eIOU/models.rb:10:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /Users/siegfried/Projects/eIOU/spec/model_spec.rb:3:in `<top
(required)>'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`load'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`block in load_spec_files'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`map'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`load_spec_files'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/command_line.rb:18:in
`run'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:55:in
`run_in_process'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:46:in
`run'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:10:in
`block in autorun'
Or,
class Transaction
include DataMapper::Resource
property :type, Discriminator
property :comment, String, :length => 140
property :created_at, DateTime
belongs_to :loan, :key => true
end
class Agreement < Transaction
end
Error:
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:70:in
`execute_non_query': duplicate column name: type (DataObjects::SyntaxError)
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:70:in
`block (2 levels) in upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:64:in
`map'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:64:in
`block in upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-do-adapter-1.0.2/lib/dm-do-adapter/adapter.rb:260:in
`with_connection'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/adapters/dm-do-adapter.rb:63:in
`upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:71:in
`upgrade_model_storage'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:143:in
`auto_upgrade!'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:145:in
`auto_upgrade!'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:45:in
`block in repository_execute'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:69:in
`block (2 levels) in each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:68:in
`block in each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:69:in
`block in each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/support/descendant_set.rb:67:in
`each'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:44:in
`repository_execute'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-migrations/auto_migration.rb:27:in
`auto_upgrade!'
from /Users/siegfried/Projects/eIOU/models.rb:113:in `<module:Models>'
from /Users/siegfried/Projects/eIOU/models.rb:12:in `<module:EIOU>'
from /Users/siegfried/Projects/eIOU/models.rb:10:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /Users/siegfried/Projects/eIOU/spec/model_spec.rb:3:in `<top
(required)>'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`load'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`block in load_spec_files'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`map'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/configuration.rb:334:in
`load_spec_files'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/command_line.rb:18:in
`run'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:55:in
`run_in_process'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:46:in
`run'
from
/Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.1.0/lib/rspec/core/runner.rb:10:in
`block in autorun'
On Nov 20, 2010, at 8:55 PM, Piotr Solnica wrote:
> Hi,
>
> Discriminator cannot be used as a key because it won't be unique. The
> error is confusing though and it's something that we could improve.
> You need to specify a serial property in you base model and it will
> work.
>
> Cheers
>
> # solnic
>
> On Nov 20, 1:31 pm, Zhi-Qiang Lei <[email protected]> wrote:
>> Dear All,
>>
>> Do I need to assign different key for each sub-model when I use single table
>> inheritance of datamapper?
>>
>> class Action
>> include DataMapper::Resource
>> property :type, Discriminator, :key => true
>> property :comment, String, :length => 140
>> property :created_at, DateTime
>> belongs_to :loan, :key => true
>> end
>>
>> class Agreement < Action; end
>>
>> I got a error as follow.
>>
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/adapters/dm-do-adapter.rb:70:in `execute_non_query': duplicate
>> column name: type (DataObjects::SyntaxError)
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/adapters/dm-do-adapter.rb:70:in `block (2 levels) in
>> upgrade_model_storage'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/adapters/dm-do-adapter.rb:64:in `map'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/adapters/dm-do-adapter.rb:64:in `block in upgrade_model_storage'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-do-adapter-1.0.2/lib/dm-do
>> -adapter/adapter.rb:260:in `with_connection'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/adapters/dm-do-adapter.rb:63:in `upgrade_model_storage'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/auto_migration.rb:71:in `upgrade_model_storage'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/auto_migration.rb:143:in `auto_upgrade!'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/auto_migration.rb:145:in `auto_upgrade!'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/auto_migration.rb:45:in `block in repository_execute'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:69:in `block (2 levels) in each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:68:in `block in each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:67:in `each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:67:in `each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:69:in `block in each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:67:in `each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-core-1.0.2/lib/dm-core/sup
>> port/descendant_set.rb:67:in `each'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/auto_migration.rb:44:in `repository_execute'
>> from
>> /Users/siegfried/.rvm/gems/ruby-1.9.2-p0/gems/dm-migrations-1.0.2/lib/dm-mi
>> grations/auto_migration.rb:27:in `auto_upgrade!'
>> from models.rb:67:in `<module:Models>'
>> from models.rb:15:in `<module:EIOU>'
>> from models.rb:9:in `<main>'
>>
>> Best regards,
>> Zhi-Qiang Lei
>> [email protected]
>
> --
> You received this message because you are subscribed to the Google Groups
> "DataMapper" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/datamapper?hl=en.
>
Best regards,
Zhi-Qiang Lei
[email protected]
--
You received this message because you are subscribed to the Google Groups
"DataMapper" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/datamapper?hl=en.