2009-05-20 10 views
0

Ich sehe ständig die folgenden Postgres-Fehler/Warnungen in meinem Rails-Entwicklungsprotokoll. Es führt nicht dazu, dass meine App scheitert (hoffe ich). Irgendeine Idee, was sie verursachen könnte? Was kann ich tun, um dies zu debuggen?Postgres-Fehler (plpgsql bereits vorhanden/Funktion array_accum ist bereits vorhanden) im Rails-App-Protokoll

in meinem PC installiert: - Rubin 1.8.7 (2008-08-11 Patchlevel 72) [i486-linux]
- Rails 2.2.2
- PostgreSQL 8.3.7

[4;36;1mSQL (0.1ms)[0m [0;1mSET client_min_messages TO 'panic'[0m 
    [4;35;1mSQL (0.1ms)[0m [0mSET client_min_messages TO 'notice'[0m 
    [4;36;1mSQL (0.7ms)[0m [0;1mSELECT version FROM schema_migrations[0m 
DEPRECATION WARNING: ActionMailer::Base.register_template_extension has been deprecated.Use ActionView::Base.register_template_extension instead. (called from /home/gsmendoza/workspace/idea/georgemendoza/config/environment.rb:104) 
    [4;35;1mSQL (0.2ms)[0m [0mbegin[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1msavepoint ts[0m 
    [4;35;1mSQL (0.0ms)[0m [0mPGError: ERROR: function "array_accum" already exists with same argument types 
: CREATE AGGREGATE array_accum (anyelement) 
(
sfunc = array_append, 
stype = anyarray, 
initcond = '{}' 
); 
[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1mrollback to savepoint ts[0m 
    [4;35;1mSQL (0.1ms)[0m [0mrelease savepoint ts[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1mcommit[0m 
    [4;35;1mSQL (0.1ms)[0m [0mbegin[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1msavepoint ts[0m 
    [4;35;1mSQL (0.0ms)[0m [0mPGError: ERROR: language "plpgsql" already exists 
: CREATE LANGUAGE 'plpgsql';[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1mrollback to savepoint ts[0m 
    [4;35;1mSQL (0.1ms)[0m [0mrelease savepoint ts[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1mcommit[0m 
    [4;35;1mSQL (0.1ms)[0m [0mbegin[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1msavepoint ts[0m 
    [4;35;1mSQL (2.6ms)[0m [0m CREATE OR REPLACE FUNCTION crc32(word text) 
RETURNS bigint AS $$ 
DECLARE tmp bigint; 
DECLARE i int; 
DECLARE j int; 
DECLARE word_array bytea; 
BEGIN 
i = 0; 
tmp = 4294967295; 
word_array = decode(replace(word, E'\\', E'\\\\'), 'escape'); 
LOOP 
tmp = (tmp # get_byte(word_array, i))::bigint; 
i = i + 1; 
j = 0; 
LOOP 
tmp = ((tmp >> 1) # (3988292384 * (tmp & 1)))::bigint; 
j = j + 1; 
IF j >= 8 THEN 
EXIT; 
END IF; 
END LOOP; 
IF i >= char_length(word) THEN 
EXIT; 
END IF; 
END LOOP; 
return (tmp # 4294967295); 
END 
$$ IMMUTABLE STRICT LANGUAGE plpgsql; 
[0m 
    [4;36;1mSQL (0.1ms)[0m [0;1mrelease savepoint ts[0m 
    [4;35;1mSQL (0.8ms)[0m [0mcommit[0m 

Antwort

0

Du musst nichts tun. Es sieht so aus, als ob Rails nur versucht, eine plpgsql-Sprache zu installieren, die bereits installiert ist, und eine Funktion zu erstellen, die Ihre Version von PostgreSQL bereits hat.

Schienen sind dafür vorbereitet und ignorieren diese Fehler einfach. Kein gutes Programmierbeispiel, aber keine Sorge.

0

wurde mir klar, dass dieser Fehler für mich kam wegen meiner Fehler

  1. Testdatenbank
  2. erstellt neue Testdatenbank
  3. Liste item versucht umgekehrt fiel bei dem Versuch, Struktur der Entwicklung Datenbank zu migrieren

Nebenwirkungen von langen Arbeitszeiten zu testen;)

Verwandte Themen