MySQL zu PostGreSQL

Hallo Leute,

Ich bin gerade dabei mir eine kleine Homepage für meine Guatemala reise zu bauen, und da brauche ich natürlich auch Bilder.

Ich benutze phpbb und möchte jetzt folgende Bildergallery installieren:
http://smartor.is-root.com

phpbb funktioniert ohne Probleme mit PostGreSQL, und leider habe ich Probleme mit der Bildergallery.

Nun ein paar Fragen:

  1. Wie gehe ich vor wenn ich es dennoch installieren will?

  2. Wenn ich es schaffe dass ich die Datenbank erstelle, funktioniert dann der Code der Bildergallery?

  3. Wovon hängt das ab?

Soviel mal dazu, und jetzt noch den SQL Code für Erstellung der DB.

lg, und würde mich freuen wenn mir jemand helfen kann
Darian



CREATE TABLE phpbb_album (
    pic_id int(11) UNSIGNED NOT NULL auto_increment,
    pic_filename varchar(255) NOT NULL,
    pic_thumbnail varchar(255),
    pic_title varchar(255) NOT NULL,
    pic_desc text,
    pic_user_id mediumint(8) NOT NULL,
    pic_username varchar(32),
    pic_user_ip char(8) NOT NULL DEFAULT '0',
    pic_time int(11) UNSIGNED NOT NULL,
    pic_cat_id mediumint(8) UNSIGNED NOT NULL DEFAULT '1',
    pic_view_count int(11) UNSIGNED NOT NULL DEFAULT '0',
    pic_lock tinyint(3) NOT NULL DEFAULT '0',
    pic_approval tinyint(3) NOT NULL DEFAULT '1',
    PRIMARY KEY (pic_id),
    KEY pic_cat_id (pic_cat_id),
    KEY pic_user_id (pic_user_id),
    KEY pic_time (pic_time));

CREATE TABLE phpbb_album_rate (
    rate_pic_id int(11) UNSIGNED NOT NULL,
    rate_user_id mediumint(8) NOT NULL,
    rate_user_ip char(8) NOT NULL,
    rate_point tinyint(3) UNSIGNED NOT NULL,
    KEY rate_pic_id (rate_pic_id),
    KEY rate_user_id (rate_user_id),
    KEY rate_user_ip (rate_user_ip),
    KEY rate_point (rate_point));

CREATE TABLE phpbb_album_comment (
    comment_id int(11) UNSIGNED NOT NULL auto_increment,
    comment_pic_id int(11) UNSIGNED NOT NULL,
    comment_user_id mediumint(8) NOT NULL,
    comment_username varchar(32),
    comment_user_ip char(8) NOT NULL,
    comment_time int(11) UNSIGNED NOT NULL,
    comment_text TEXT,
    comment_edit_time int(11) UNSIGNED,
    comment_edit_count smallint(5) UNSIGNED NOT NULL DEFAULT '0',
    comment_edit_user_id mediumint(8),
    PRIMARY KEY(comment_id),
    KEY comment_pic_id (comment_pic_id),
    KEY comment_user_id (comment_user_id),
    KEY comment_user_ip (comment_user_ip),
    KEY comment_time (comment_time));

CREATE TABLE phpbb_album_cat (
    cat_id mediumint(8) UNSIGNED NOT NULL auto_increment,
    cat_title varchar(255) NOT NULL,
    cat_desc text,
    cat_order mediumint(8) NOT NULL,
    cat_view_level tinyint(3) NOT NULL DEFAULT '-1',
    cat_upload_level tinyint(3) NOT NULL DEFAULT '0',
    cat_rate_level tinyint(3) NOT NULL DEFAULT '0',
    cat_comment_level tinyint(3) NOT NULL DEFAULT '0',
    cat_edit_level tinyint(3) NOT NULL DEFAULT '0',
    cat_delete_level tinyint(3) NOT NULL DEFAULT '2',
    cat_view_groups varchar(255),
    cat_upload_groups varchar(255),
    cat_rate_groups varchar(255),
    cat_comment_groups varchar(255),
    cat_edit_groups varchar(255),
    cat_delete_groups varchar(255),
    cat_moderator_groups varchar(255),
    cat_approval tinyint(3) NOT NULL DEFAULT '0',
    PRIMARY KEY (cat_id),
    KEY cat_order (cat_order));

CREATE TABLE phpbb_album_config (
    config_name varchar(255) NOT NULL,
    config_value varchar(255) NOT NULL,
    PRIMARY KEY (config_name));

INSERT INTO phpbb_album_config VALUES ('max_pics', '1024');
INSERT INTO phpbb_album_config VALUES ('user_pics_limit', '50');
INSERT INTO phpbb_album_config VALUES ('mod_pics_limit', '250');
INSERT INTO phpbb_album_config VALUES ('max_file_size', '128000');
INSERT INTO phpbb_album_config VALUES ('max_width', '800');
INSERT INTO phpbb_album_config VALUES ('max_height', '600');
INSERT INTO phpbb_album_config VALUES ('rows_per_page', '3');
INSERT INTO phpbb_album_config VALUES ('cols_per_page', '4');
INSERT INTO phpbb_album_config VALUES ('fullpic_popup', '1');
INSERT INTO phpbb_album_config VALUES ('thumbnail_quality', '50');
INSERT INTO phpbb_album_config VALUES ('thumbnail_size', '125');
INSERT INTO phpbb_album_config VALUES ('thumbnail_cache', '1');
INSERT INTO phpbb_album_config VALUES ('sort_method', 'pic_time');
INSERT INTO phpbb_album_config VALUES ('sort_order', 'DESC');
INSERT INTO phpbb_album_config VALUES ('jpg_allowed', '1');
INSERT INTO phpbb_album_config VALUES ('png_allowed', '1');
INSERT INTO phpbb_album_config VALUES ('gif_allowed', '0');
INSERT INTO phpbb_album_config VALUES ('desc_length', '512');
INSERT INTO phpbb_album_config VALUES ('hotlink_prevent', '0');
INSERT INTO phpbb_album_config VALUES ('hotlink_allowed', 'smartor.is-root.com');
INSERT INTO phpbb_album_config VALUES ('personal_gallery', '0');
INSERT INTO phpbb_album_config VALUES ('personal_gallery_private', '0');
INSERT INTO phpbb_album_config VALUES ('personal_gallery_limit', '10');
INSERT INTO phpbb_album_config VALUES ('personal_gallery_view', '-1');
INSERT INTO phpbb_album_config VALUES ('rate', '1');
INSERT INTO phpbb_album_config VALUES ('rate_scale', '10');
INSERT INTO phpbb_album_config VALUES ('comment', '1');
INSERT INTO phpbb_album_config VALUES ('gd_version', '2');
INSERT INTO phpbb_album_config VALUES ('album_version', '.0.55'); 

Ich schreib mal als SQL-Kommentar das rein, was mir erst mal so auffällt.

CREATE TABLE phpbb_album (
pic_id int(11) UNSIGNED NOT NULL auto_increment,
– verwende serial, nicht auto_dingens, das gibts ned
pic_filename varchar(255) NOT NULL,
pic_thumbnail varchar(255),
pic_title varchar(255) NOT NULL,
pic_desc text,
pic_user_id mediumint(8) NOT NULL,
pic_username varchar(32),
pic_user_ip char(8) NOT NULL DEFAULT ‘0’,
– für IP-Adressen etc. gibt es spezielle Datentypen, verwende die lieber
pic_time int(11) UNSIGNED NOT NULL,
– auch dafür gibt es einen besseren Typ, time
pic_cat_id mediumint(8) UNSIGNED NOT NULL DEFAULT ‘1’,
pic_view_count int(11) UNSIGNED NOT NULL DEFAULT ‘0’,
pic_lock tinyint(3) NOT NULL DEFAULT ‘0’,
pic_approval tinyint(3) NOT NULL DEFAULT ‘1’,
PRIMARY KEY (pic_id),
KEY pic_cat_id (pic_cat_id),
KEY pic_user_id (pic_user_id),
KEY pic_time (pic_time));

CREATE TABLE phpbb_album_rate (
rate_pic_id int(11) UNSIGNED NOT NULL,
rate_user_id mediumint(8) NOT NULL,
rate_user_ip char(8) NOT NULL,
– wieder flascher Datentyp
rate_point tinyint(3) UNSIGNED NOT NULL,
KEY rate_pic_id (rate_pic_id),
KEY rate_user_id (rate_user_id),
KEY rate_user_ip (rate_user_ip),
KEY rate_point (rate_point));

CREATE TABLE phpbb_album_comment (
comment_id int(11) UNSIGNED NOT NULL auto_increment,
comment_pic_id int(11) UNSIGNED NOT NULL,
comment_user_id mediumint(8) NOT NULL,
comment_username varchar(32),
– hast Du eine Tabeller der User? dann brauchst Du ja nur die ID, nicht den Namen
comment_user_ip char(8) NOT NULL,
– sagte ich schon, daß es für IP-Adressen einen Datentyp gibt?
comment_time int(11) UNSIGNED NOT NULL,
comment_text TEXT,
comment_edit_time int(11) UNSIGNED,
– wieder: time, wobei Du willst wohl eher timestamptz
comment_edit_count smallint(5) UNSIGNED NOT NULL DEFAULT ‘0’,
comment_edit_user_id mediumint(8),
PRIMARY KEY(comment_id),
KEY comment_pic_id (comment_pic_id),
KEY comment_user_id (comment_user_id),
KEY comment_user_ip (comment_user_ip),
KEY comment_time (comment_time));

CREATE TABLE phpbb_album_cat (
cat_id mediumint(8) UNSIGNED NOT NULL auto_increment,
– serial, nicht auto_…
cat_title varchar(255) NOT NULL,
cat_desc text,
cat_order mediumint(8) NOT NULL,
cat_view_level tinyint(3) NOT NULL DEFAULT ‘-1’,
cat_upload_level tinyint(3) NOT NULL DEFAULT ‘0’,
cat_rate_level tinyint(3) NOT NULL DEFAULT ‘0’,
cat_comment_level tinyint(3) NOT NULL DEFAULT ‘0’,
cat_edit_level tinyint(3) NOT NULL DEFAULT ‘0’,
cat_delete_level tinyint(3) NOT NULL DEFAULT ‘2’,
cat_view_groups varchar(255),
cat_upload_groups varchar(255),
cat_rate_groups varchar(255),
cat_comment_groups varchar(255),
cat_edit_groups varchar(255),
cat_delete_groups varchar(255),
cat_moderator_groups varchar(255),
cat_approval tinyint(3) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (cat_id),
KEY cat_order (cat_order));

CREATE TABLE phpbb_album_config (
config_name varchar(255) NOT NULL,
config_value varchar(255) NOT NULL,
PRIMARY KEY (config_name));

INSERT INTO phpbb_album_config VALUES (‘max_pics’, ‘1024’);
– du speicherst hier numerische Daten in varchar(255). sehr schlecht.

INSERT INTO phpbb_album_config VALUES (‘user_pics_limit’, ‘50’);
INSERT INTO phpbb_album_config VALUES (‘mod_pics_limit’, ‘250’);
INSERT INTO phpbb_album_config VALUES (‘max_file_size’, ‘128000’);
INSERT INTO phpbb_album_config VALUES (‘max_width’, ‘800’);
INSERT INTO phpbb_album_config VALUES (‘max_height’, ‘600’);
INSERT INTO phpbb_album_config VALUES (‘rows_per_page’, ‘3’);
INSERT INTO phpbb_album_config VALUES (‘cols_per_page’, ‘4’);
INSERT INTO phpbb_album_config VALUES (‘fullpic_popup’, ‘1’);
INSERT INTO phpbb_album_config VALUES (‘thumbnail_quality’, ‘50’);
INSERT INTO phpbb_album_config VALUES (‘thumbnail_size’, ‘125’);
INSERT INTO phpbb_album_config VALUES (‘thumbnail_cache’, ‘1’);
INSERT INTO phpbb_album_config VALUES (‘sort_method’, ‘pic_time’);
INSERT INTO phpbb_album_config VALUES (‘sort_order’, ‘DESC’);
INSERT INTO phpbb_album_config VALUES (‘jpg_allowed’, ‘1’);
INSERT INTO phpbb_album_config VALUES (‘png_allowed’, ‘1’);
INSERT INTO phpbb_album_config VALUES (‘gif_allowed’, ‘0’);
INSERT INTO phpbb_album_config VALUES (‘desc_length’, ‘512’);
INSERT INTO phpbb_album_config VALUES (‘hotlink_prevent’, ‘0’);
INSERT INTO phpbb_album_config VALUES (‘hotlink_allowed’, ‘smartor.is-root.com’);
INSERT INTO phpbb_album_config VALUES (‘personal_gallery’, ‘0’);
INSERT INTO phpbb_album_config VALUES (‘personal_gallery_private’, ‘0’);
INSERT INTO phpbb_album_config VALUES (‘personal_gallery_limit’, ‘10’);
INSERT INTO phpbb_album_config VALUES (‘personal_gallery_view’, ‘-1’);
INSERT INTO phpbb_album_config VALUES (‘rate’, ‘1’);
INSERT INTO phpbb_album_config VALUES (‘rate_scale’, ‘10’);
INSERT INTO phpbb_album_config VALUES (‘comment’, ‘1’);
INSERT INTO phpbb_album_config VALUES (‘gd_version’, ‘2’);
INSERT INTO phpbb_album_config VALUES (‘album_version’, ‘.0.55’);

>

[/quote]

Das dazu. Hab grad nicht viel Zeit, vielleicht sagt da jemand anders noch a bissl mehr...
\
\
Andreas

Super danke, hat mir schon einmal ein bisschen weiter geholfen. Und werde dann wenn es wirklich Sinn macht das alles wohl auf postgresql umbauen.

Was jetzt noch wirklich wichtig für mich ist, wenn ich da was selber ändere, kann der Coder der Bildergallery dann noch darauf zugreifen? Nicht dass ich mir die Arbeit mache, und es funktioniert dann nix mehr.

lg und danke bis jetzt
Darian

Wenn die Bildergallery die phpBB-Klassen verwendet, würde ich sagen ja. Da diese als Mod von phpBB ausgeliefert wird, stehen die Chancen auch sehr gut.

Diesbezüglich solltst Du einmal direkt im phpBB Forum oder im Forum der Gallery nachfragen.

Hallo Leute,

ich habe gerade etwas gefunden. Ich glaube da gehört schon einiges verändert.

http://smartor.is-root.com/viewtopic.php?t=14811&highlight=postgresql

Oh, schon langsam finde ich es richtig schade keine mysql Datenbank zu haben. :slight_smile: (ist vielleicht das falsche Forum um sowas zu sageng)

Ok egal, ist wenigstens eine Herausforderung

lg Darian

Hallo Leute,

habe das nun aufgegeben, und begonnen die gallery2 und das phpBB Forum zu verbinden.

Jetzt möchte ich folgende Tabelle erstellen, was passt da nicht? (bitte um Hilfe)

Mein zusammen geschustertes PostGreSQL:

CREATE TABLE phpbb_gallery2 (
fullPath VARCHAR( 255 ) NOT NULL ,
embedUri VARCHAR( 255 ) NOT NULL ,
g2Uri VARCHAR( 255 ) NOT NULL ,
activeAdminId INT NOT NULL ,
utf8_translate SMALLINT( 1 ) NOT NULL,
exportData TEXT NULL
); 

Das von MySQL sah vorhin wie folgt aus:

CREATE TABLE `phpbb_gallery2` (
`fullPath` VARCHAR( 255 ) NOT NULL ,
`embedUri` VARCHAR( 255 ) NOT NULL ,
`g2Uri` VARCHAR( 255 ) NOT NULL ,
`activeAdminId` INT NOT NULL ,
`utf8_translate` TINYINT( 1 ) NOT NULL,
`exportData` TEXT NULL
); 

Fehlermeldung:

SQL Fehler:

ERROR:  syntax error at or near "("
LINE 6: utf8_translate SMALLINT( 1 ) NOT NULL,
                               ^

In der Anweisung:
CREATE TABLE phpbb_gallery2 (
fullPath VARCHAR( 255 ) NOT NULL ,
embedUri VARCHAR( 255 ) NOT NULL ,
g2Uri VARCHAR( 255 ) NOT NULL ,
activeAdminId INT NOT NULL ,
utf8_translate SMALLINT( 1 ) NOT NULL,
exportData TEXT NULL
); 

Bitte um ein paar Tipps, kann aber nicht mehr soo falsch sein glaube ich.

lg Darian

Edit: Habe schon bemerkt dass bei smallint diese da => (1) stören. Kann mir jemand erklären warum?

Ich denke mal, der Datentyp smallint enthält bereits eine Angabe über die Grösse und braucht die 1 deswegen nicht.

Gruß Uwe

Hallo,

na ja, smallint geht von -32768 bis +32767.

Integer geht auch von irgendwas nach irgendwas, und kann man auch begrenzen.

lg Darian

Es ging darum:

utf8_translate SMALLINT( 1 )

Und dieses (1) ist sinnfrei.

Andreas

Was meinst du mit sinnfrei? :slight_smile: Sorry, aber ist mir von der logik noch nicht so ganz klar. :slight_smile:

lg Darian

Na, dann denk noch mal drüber nach :wink:

Andreas

SMALLINT ist SMALLINT. Das ist bereits eine Größenangabe.

Mysql nimmt sich heraus, da ab und zu mal die Anzahl Stellen anzugeben, die da reinpassen sollen. Sollte man einfach ignorieren und nur den Datentyp hinschreiben.

Bei Mysql gibts auch dieses ominöse INT(1) und die nutzen das als billigen BOOLEAN Datentyp, um 0 und 1 (aber auch 2-9) darin abzulegen. Muss man halt machen, wenn man weder gescheite Datentypen noch saubere Checks für Datenintegrität hat.

Hallo, und danke für die Infos.

Ich selber bin gerade dabei mir das eher selber zu machen. Lerne PHP, und habe schon einige Sachen mit PostGreSQL zusammen gebracht.

Ich denke in Zukunft werdet ihr mich öfter hier sehen.

lg Darian