|
|
|
|
|
|
|
|
Endlich fertig mit dem ganzen kack
|
|
|
|
|
|
|
hab grade auch kein bock mehr auf das pm-system
|
|
|
|
|
|
|
Ich habe erfolgreich einen Bug in DBIx::Class::Schema::Versioned gesucht. Jetzt gehen die Versionierten DB-Schematas wieder total toll
|
|
|
|
|
|
|
Oh man, das ist sowas von Sexy
Meine Schema Definition für die Tabelle users in Version 0.01
|
Code: |
__PACKAGE__->table("users");
__PACKAGE__->add_columns(
id => {
data_type => "integer",
is_nullable => 0,
size => 11,
is_auto_increment => 1,
default_value => undef,
},
username => {
data_type => "varchar",
size => 255,
is_nullable => 0,
},
);
__PACKAGE__->set_primary_key("id");
|
|
Daraus macht er mir
|
Code: |
--
-- Created by SQL::Translator::Producer::MySQL
-- Created on Wed Feb 27 18:50:04 2008
--
SET foreign_key_checks=0;
DROP TABLE IF EXISTS `users`;
--
-- Table: `users`
--
CREATE TABLE `users` (
`id` integer(11) NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
INDEX (`id`),
PRIMARY KEY (`id`)
);
SET foreign_key_checks=1;
|
|
Jetzt füge ich im Schema (also auf der Perl Seite) eine Spalte hinzu:
|
Code: |
__PACKAGE__->add_columns(
id => { ... },
username => { ... },
password => {
data_type => "varchar",
size => 255,
is_nullable => 0,
},
);
|
|
Lasse das diff-Script laufen und bekomme folgendes SQL-Diff-File:
|
Code: |
-- Convert schema 'updates/DB-0.01-MySQL.sql' to 'updates/DB-0.02-MySQL.sql':
ALTER TABLE users ADD password varchar(255) NOT NULL;
|
|
Auf Wunsch kann ich das dann mittels $schema->upgrade() in die Datenbank einspielen und schon ist alles up2date
// Da wird die Webentwicklung mit Datenbanken doch gleich wieder viel angenehmer.
|
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von GH@NDI am 27.02.2008 21:50]
|
|
|
|
|
|
Schönes Spielzeug. Spricht aber nicht sehr für einen, wenn man es wirklich benötigt.
|
|
|
|
|
|
|
Das ist nicht nur ein Spielzeug, sondern ein echtes Hilfsmittel beim (vorsicht Buzzword) deployment von Webanwendungen. Aber deployment und PHP Anwendungen... reden wir nicht drüber. Da kann man ja oft schon froh sein wenn einem ein dediziertes Entwicklungssystem zur Verfügung steht.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SirSiggi am 27.02.2008 22:01]
|
|
|
|
|
|
Als ob du deine Datenbank schematas immer schon bis ins Detail fertigst und daran im Entwicklungslauf auch nie wieder was änderst
Das schöne daran ist nämlich, dass es nicht nur die Entwicklungsarbeit erleichtet (neben MySQL kann das ding auch gleich das SQL für PostgreSQL und SQLite ausspucken (mehr kommt, sobal SQL::Translator entsprechend mehr kann)) sondern man damit auch ohne Streß eine Applikation bei einem Kunden deployen.
Ausserdem was ist, wenn du irgendwann ein update nachschiebst? Jedesmal ein SQL-File mitschicken? Was ist mit jemandem der von Version 1.0 auf 2.0 springt und die relases 1.2 und 1.7 ausgelassen hat? Für jeden Kunden dann wieder nen eigenes Diff zur Verfügung stellen?
Also ich sehe darin nen wachsenden Markt. Warum immer nur Dateien Versionieren, warum nicht auch das Datenbanksystem?
|
|
|
|
|
|
|
|
|
|
|
zeig wenigstens mal her deine "spielfigur".
|
|
|
|
|
|
|
so, frage:
ganz grob vereinfacht sieht ein pm-eintrag so aus:
mid | sender | recipient | reference
als reference wird die mid der nachricht eingetragen, auf die man geantwortet hat.
Wie bekomme ich jetzt alle Nachrichten, die hinter soeiner Kommunikation stecken? Quasi wie suche ich mir alle verknüpften Nachrichten heraus?
|
|
|
|
|
|
|
Ich wollte doch nur ein bisschen trollen.
Sowas habe ich mir schon oft gewünscht...
|
|
|
|
|
|
|
| Zitat von kinglui69
so, frage:
ganz grob vereinfacht sieht ein pm-eintrag so aus:
mid | sender | recipient | reference
als reference wird die mid der nachricht eingetragen, auf die man geantwortet hat.
Wie bekomme ich jetzt alle Nachrichten, die hinter soeiner Kommunikation stecken? Quasi wie suche ich mir alle verknüpften Nachrichten heraus?
| |
Hattest du die Frage nicht vor kurzem schon mal? Falls ja, hab ich glaub ich sowas in der Art geantwortet: Ergänze das Schema um first_mid, das bei neuen Nachrichten mit der Id der neuen Nachricht belegt wird. Bei Antworten wird diese erste Id immer mitgeführt. Ein Select anhand irgendeiner Nachricht in der Kette kann alle Nachrichten holen.
|
|
|
|
|
|
|
| Zitat von GarlandGreene
| Zitat von kinglui69
so, frage:
ganz grob vereinfacht sieht ein pm-eintrag so aus:
mid | sender | recipient | reference
als reference wird die mid der nachricht eingetragen, auf die man geantwortet hat.
Wie bekomme ich jetzt alle Nachrichten, die hinter soeiner Kommunikation stecken? Quasi wie suche ich mir alle verknüpften Nachrichten heraus?
| |
Hattest du die Frage nicht vor kurzem schon mal? Falls ja, hab ich glaub ich sowas in der Art geantwortet: Ergänze das Schema um first_mid, das bei neuen Nachrichten mit der Id der neuen Nachricht belegt wird. Bei Antworten wird diese erste Id immer mitgeführt. Ein Select anhand irgendeiner Nachricht in der Kette kann alle Nachrichten holen.
| |
ja, hatte das schonmal gefragt aber da nicht die antwort bekommen mein ich. stimmt, das wäre eine möglichkeit. hrm
|
|
|
|
|
|
|
dann kann ich egtl ja das reference-field streichen bzw dazu umfunktionieren und die nachrichten einfach nach zeit bzw absteigend nach id ordnen...
|
|
|
|
|
|
|
nicht zwangsläufig, denn du kannst auf eine Nachricht zwei oder drei mal antworten, das muss aber nicht zwangsläufig in einer Reihenfolge sein. Wenn du aber nur die MessageId als Reihenfolge hast, kannst du das nicht mehr feststellen.
|
|
|
|
|
|
|
aber das Zuordnen fällt dann doch immernoch schwer, weil ich damit zwar immer die direkt verwandte mail bekomme aber wieder keine reihenfolge bilden kann. Ich denke egtl das Sortieren nach Zeit reicht aus...
was anderes: ich füge per insert eine neue row zur db hinzu und will nun in einem feld die id, die in der gleichen zeile per auto_increment gesetzt wurde auch in ein anderes feld schreiben...last_insert_id() und mysql_insert_id() machen scheinbar die id der vorherigen aktion :/
erstmla gute nacht
|
|
|
|
|
|
|
Nabend..
|
|
|
|
|
|
|
Guten Abend Marvin. Wie war der Tag?
|
|
|
|
|
|
|
Nackenstarre.
|
|
|
|
|
|
|
|
|
|
|
| Zitat von SirSiggi
Guten Abend Marvin. Wie war der Tag?
| |
ziemlich voll mit Terminen..
haben bis vor 30 min, 2h Fussball gespielt.. hab mir irgendwie den Daumen verstaucht.. tut ganz schoen weh..
und deiner?
|
|
|
|
|
|
|
Den gabs leider zu Beginn des Tages schon zu sehen.
|
|
|
|
|
|
|
| Zitat von -Marvin-
und deiner?
| |
Ging so. Der Arbeitstag hat mich angekotzt, der Privattag bestand mal wieder mehr aus Forum und Gitarre als aus Mathe.
|
|
|
|
|
|
|
| Zitat von SirSiggi
Den gabs leider zu Beginn des Tages schon zu sehen.
| |
tjoa, dann halt nochmal zum Ende..
ihr erwartet doch nicht etwa, dass ich mir alle Seiten, die neu sind, durchlese, oder?
|
|
|
|
|
|
|
| Zitat von SirSiggi
| Zitat von -Marvin-
und deiner?
| |
Ging so. Der Arbeitstag hat mich angekotzt, der Privattag bestand mal wieder mehr aus Forum und Gitarre als aus Mathe.
| |
du musst versuchen dich selber zu motivieren.. 30min mathe, 1h was anderes, 30min mathe..
|
|
|
|
|
|
|
Für was haben wir denn einen RSS Feed?
Ich sitz gerade vor Mathe...
|
|
|
|
|
|
|
| Zitat von SirSiggi
Für was haben wir denn einen RSS Feed?
Ich sitz gerade vor Mathe...
| |
Wir haben ein RRS-Feed? :O
|
|
|
|
|
|
|
|
|
|
|
selbst wenn.. les ich auch nicht..
|
|
|
|
|
|
Thema: Gehirnsalat ( wir unter uns ) |