Thread LinuxMagazin Script Fehler (13 answers)
Opened by Gast at 2008-05-30 16:22

Dubu
 2008-06-07 14:13
#110849 #110849
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Wenn ich mir nochmal die Fehlermeldung oben anschaue: Die Klasse WatchLAN::IpAddress dürfte es gar nicht geben. Diese Klassen werden automatisch von Rose::DB angelegt, und in der Datenbankdefinition gibt es keine Tabelle ip_address, sondern nur ip_addresses. Bist du sicher, dass du die DB richtig angelegt hast, wie im Artikel angegeben?

Damit andere es nicht auch abtippen müssen, hier das Schema für MySQL, wie im Artikel zu sehen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
CREATE TABLE ip_addresses (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
string VARCHAR(15),
UNIQUE(string)
) Type=InnoDB;

CREATE TABLE devices (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255),
mac_address VARCHAR(17),
ip_static_id INTEGER,

FOREIGN KEY (ip_static_id)
REFERENCES ip_addresses(id),
INDEX(ip_static_id),
UNIQUE(mac_address)
) Type=InnoDB;

CREATE TABLE activity (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
minute DATETIME,
counter BIGINT,
device_id INTEGER NOT NULL,
ip_address_id INTEGER NOT NULL,

FOREIGN KEY (device_id)
REFERENCES devices(id),
FOREIGN KEY (ip_address_id)
REFERENCES ip_addresses(id),
INDEX(device_id),
INDEX(ip_address_id)
) Type=InnoDB;


Und hier meine PostgreSQL-Variante (für PostgreSQL 8.1, deshalb kein DROP ... IF EXISTS!):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
DROP INDEX device_id_idx;
DROP INDEX ip_static_id_idx;
DROP INDEX ip_address_id_idx;
DROP TABLE activity;
DROP TABLE devices;
DROP TABLE ip_addresses;

CREATE TABLE ip_addresses (
id SERIAL UNIQUE PRIMARY KEY,
string VARCHAR(15),
UNIQUE(string)
);

CREATE TABLE devices (
id SERIAL UNIQUE PRIMARY KEY,
name VARCHAR(255),
mac_address VARCHAR(17),
ip_static_id INTEGER,

FOREIGN KEY (ip_static_id)
REFERENCES ip_addresses(id),
UNIQUE(mac_address)
);

CREATE TABLE activity (
id SERIAL UNIQUE PRIMARY KEY,
minute TIMESTAMP,
counter BIGINT,
device_id INTEGER NOT NULL,
ip_address_id INTEGER NOT NULL,

FOREIGN KEY (device_id)
REFERENCES devices(id),
FOREIGN KEY (ip_address_id)
REFERENCES ip_addresses(id)
);

CREATE INDEX ip_static_id_idx ON devices (ip_static_id);
CREATE INDEX device_id_idx ON activity (device_id);
CREATE INDEX ip_address_id_idx ON activity (ip_address_id);


(Für eine Version ohne Zeilennummern am besten auf "ANTWORT MIT ZITAT" klicken, Text kopieren und wieder zurück gehen. ;-))

----
Modedit Gwendragon: +Code-Tags
----
Last edited: 2009-05-14 15:00:08 +0200 (CEST)

View full thread LinuxMagazin Script Fehler