2013-04-17 13 views
6

Ich bekomme den folgenden Fehler häufig in meiner Anwendung. Wenn ich meine Rails-Anwendung neu starte, wird dieser Fehler für einige Zeit nicht angezeigt.ActiveRecord :: StatementInvalid: PG :: Fehler: Fehler: Null-Wert in Spalte "ID" verletzt Nicht-Null-Bedingung

Rails - 3.1.3

Rubin - 1.9.3

ActiveRecord::StatementInvalid: PG::Error: ERROR: null value in column "id" violates not-null constraint

Directory.create(:name=>"name",:alias_name=>"name",:site_id=>2,:type=>"Directory") 

(0.3ms) BEGIN 
    SQL (0.8ms) INSERT INTO "databases" ("alias_name", "created_at", "created_by", "id", "name", "site_id", "type", "updated_at", "updated_by") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) [["alias_name", "name"], ["created_at", Wed, 17 Apr 2013 16:46:25 IST +05:30], ["created_by", nil], ["id", nil], ["name", "name"], ["site_id", 2], ["type", "Directory"], ["updated_at", Wed, 17 Apr 2013 16:46:25 IST +05:30], ["updated_by", nil]] 
PG::Error: ERROR: null value in column "id" violates not-null constraint 
: INSERT INTO "databases" ("alias_name", "created_at", "created_by", "id", "name", "site_id", "type", "updated_at", "updated_by") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) 
    (0.2ms) ROLLBACK 
ActiveRecord::StatementInvalid: PG::Error: ERROR: null value in column "id" violates not-null constraint 
: INSERT INTO "databases" ("alias_name", "created_at", "created_by", "id", "name", "site_id", "type", "updated_at", "updated_by") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) 
    from /home/user/.rvm/gems/ruby-1.9.3-p194-first[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1034:in `get_last_result' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1034:in `exec_cache' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/postgresql_adapter.rb:603:in `block in exec_query' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract_adapter.rb:244:in `block in log' 
    from /home/user/.rvm/gems/[email protected]/gems/activesupport-3.1.3/lib/active_support/notifications/instrumenter.rb:21:in `instrument' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract_adapter.rb:239:in `log' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/postgresql_adapter.rb:601:in `exec_query' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract/database_statements.rb:63:in `exec_insert' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract/database_statements.rb:90:in `insert' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract/query_cache.rb:14:in `insert' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/relation.rb:70:in `insert' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/persistence.rb:313:in `create' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/timestamp.rb:51:in `create' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/callbacks.rb:268:in `block in create' 
    from /home/user/.rvm/gems/[email protected]/gems/activesupport-3.1.3/lib/active_support/callbacks.rb:390:in `_run_create_callbacks' 
    from /home/user/.rvm/gems/[email protected]/gems/activesupport-3.1.3/lib/active_support/callbacks.rb:81:in `run_callbacks' 
... 7 levels... 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/validations.rb:50:in `save' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/attribute_methods/dirty.rb:22:in `save' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:241:in `block (2 levels) in save' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:208:in `transaction' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:293:in `with_transaction_returning_status' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:241:in `block in save' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:252:in `rollback_active_record_state!' 
    from /home/user/.rvm/gems/[email protected]/gems/activerecord-3.1.3/lib/active_record/transactions.rb:240:in `save' 
    from (irb):9 
    from /home/user/.rvm/gems/ruby-1.9.3-p[email protected]/gems/railties-3.1.3/lib/rails/commands/console.rb:45:in `start' 
    from /home/user/.rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands/console.rb:8:in `start' 
    from /home/user/.rvm/gems/[email protected]/gems/railties-3.1.3/lib/rails/commands.rb:40:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>'1.9.3p194 :010 > 

Ich weiß nicht, warum ID als Null in den Schienen gehen generiert SQL.

Kann mir bitte jemand helfen !!! Ich kämpfe viel mit diesem Fehler

Vielen Dank im Voraus,

Selva Chezhian

+0

Wie lauten die Einstellungen für die ID-Spalte in Ihrem Schema? Autoinkrement? NULL, NICHT NULL? Höchstwahrscheinlich ein Problem mit, wie die ID-Spalte eingerichtet wurde – Slinky

+0

ID-Spalte ist wie nicht null Standard nextval ('Verzeichnisse_id_seq' :: Regclass) – Chezhian

Antwort

6

ich einmal gleiches Problem. Hier ist mein Problem. Ich habe eine

rake db:schema:dump 
rake db:schema:load 

und der Tisch bekam Problem wie folgt:

create_table "campaign_line_items_backup", :id => false, :force => true do |t| 
    t.integer "id" 
    t.integer "campaign_id" 
    t.integer "size_id" 
    t.text  "name" 

sollte es

create_table "campaign_line_items_backup", :force => true do |t| 
    t.integer "campaign_id" 
    t.integer "size_id" 
    t.text  "name" 

ich sein bin nicht sicher, über Ihr Problem, das ist die Art, wie ich mein fixiert.

+1

Fast 2 Jahre später und Sie haben meinen Tag gespeichert. – Pyro2927

Verwandte Themen