0

Rails開発ログに次のpostgresエラー/警告が常に表示されます。それは私のアプリが失敗する原因ではありません(私は願っています)。何がそれらを引き起こしている可能性があるのか​​考えていますか?これをデバッグするにはどうすればよいですか?

私のPCにインストール:-Ruby 1.8.7(2008-08-11パッチレベル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
4

2 に答える 2

0

私のせいでこのエラーが発生したことに気づきました

  1. ドロップテストデータベース
  2. 新しいテストデータベースを作成しました
  3. テストする開発データベースの構造を移行しようとしているときに、リスト項目がその逆を試みました

長時間労働の副作用;)

于 2011-03-03T23:16:46.540 に答える
0

何もする必要はありません。Railsは、すでにインストールされているplpgsql言語をインストールし、お使いのバージョンのPostgreSQLにすでにある関数を作成しようとしているようです。

Railsはこれに備えており、このエラーを無視します。良いプログラミング例ではありませんが、心配する必要はありません。

于 2009-05-20T06:57:42.423 に答える