diff --git a/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalCategory.java b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalCategory.java
new file mode 100644
index 0000000..76d7b94
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalCategory.java
@@ -0,0 +1,19 @@
+package eu.mulk.mulkcms2.cms.legacyjournal;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "journal_category", schema = "public", catalog = "mulkcms")
+public class LegacyJournalCategory extends PanacheEntityBase {
+
+  @Id
+  @Column(name = "id", nullable = false)
+  public int id;
+
+  @Column(name = "uuid", nullable = false, length = 36)
+  public String uuid;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalComment.java b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalComment.java
new file mode 100644
index 0000000..0e28e71
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalComment.java
@@ -0,0 +1,50 @@
+package eu.mulk.mulkcms2.cms.legacyjournal;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "journal_comment", schema = "public", catalog = "mulkcms")
+public class LegacyJournalComment extends PanacheEntityBase {
+
+  @Id
+  @Column(name = "id", nullable = false)
+  public int id;
+
+  @Column(name = "uuid", nullable = false, length = 36)
+  public String uuid;
+
+  @Column(name = "date", nullable = false)
+  public long date;
+
+  @Column(name = "body", nullable = false, length = -1)
+  public String body;
+
+  @Column(name = "author", nullable = true, length = -1)
+  public String author;
+
+  @Column(name = "email", nullable = true, length = -1)
+  public String email;
+
+  @Column(name = "website", nullable = true, length = -1)
+  public String website;
+
+  @Column(name = "spam_p", nullable = true)
+  public Boolean spamP;
+
+  @Column(name = "submitter_ip", nullable = false, length = -1)
+  public String submitterIp;
+
+  @Column(name = "submitter_user_agent", nullable = false, length = -1)
+  public String submitterUserAgent;
+
+  @ManyToOne(fetch = FetchType.LAZY)
+  @JoinColumn(name = "entry_id", referencedColumnName = "id", nullable = false)
+  public LegacyJournalEntry journalEntry;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalEntry.java b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalEntry.java
new file mode 100644
index 0000000..df2e8cf
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalEntry.java
@@ -0,0 +1,46 @@
+package eu.mulk.mulkcms2.cms.legacyjournal;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import java.util.Collection;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.OneToMany;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "journal_entry", schema = "public", catalog = "mulkcms")
+public class LegacyJournalEntry extends PanacheEntityBase {
+
+  @Id
+  @Column(name = "id", nullable = false)
+  public int id;
+
+  @Column(name = "uuid", nullable = false, length = 36)
+  public String uuid;
+
+  @Column(name = "title", nullable = false, length = -1)
+  public String title;
+
+  @Column(name = "date", nullable = false)
+  public long date;
+
+  @Column(name = "last_modification", nullable = true)
+  public Long lastModification;
+
+  @Column(name = "body", nullable = false, length = -1)
+  public String body;
+
+  @Column(name = "type", nullable = false, length = -1)
+  public String type;
+
+  @OneToMany(mappedBy = "journalEntry", fetch = FetchType.LAZY)
+  public Collection<LegacyJournalComment> comments;
+
+  @OneToMany(mappedBy = "journalEntry", fetch = FetchType.LAZY)
+  public Collection<LegacyJournalPingback> pingbacks;
+
+  @OneToMany(mappedBy = "journalEntry", fetch = FetchType.LAZY)
+  public Collection<LegacyJournalTrackback> trackbacks;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalPingback.java b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalPingback.java
new file mode 100644
index 0000000..5052ee1
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalPingback.java
@@ -0,0 +1,41 @@
+package eu.mulk.mulkcms2.cms.legacyjournal;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "journal_pingback", schema = "public", catalog = "mulkcms")
+public class LegacyJournalPingback extends PanacheEntityBase {
+
+  @Id
+  @Column(name = "id", nullable = false)
+  public int id;
+
+  @Column(name = "uuid", nullable = false, length = 36)
+  public String uuid;
+
+  @Column(name = "date", nullable = false)
+  public long date;
+
+  @Column(name = "url", nullable = true, length = -1)
+  public String url;
+
+  @Column(name = "spam_p", nullable = true)
+  public Boolean spamP;
+
+  @Column(name = "submitter_ip", nullable = false, length = -1)
+  public String submitterIp;
+
+  @Column(name = "submitter_user_agent", nullable = false, length = -1)
+  public String submitterUserAgent;
+
+  @ManyToOne(fetch = FetchType.LAZY)
+  @JoinColumn(name = "entry_id", referencedColumnName = "id", nullable = false)
+  public LegacyJournalEntry journalEntry;
+}
diff --git a/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalTrackback.java b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalTrackback.java
new file mode 100644
index 0000000..daf4c2d
--- /dev/null
+++ b/src/main/java/eu/mulk/mulkcms2/cms/legacyjournal/LegacyJournalTrackback.java
@@ -0,0 +1,50 @@
+package eu.mulk.mulkcms2.cms.legacyjournal;
+
+import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "journal_trackback", schema = "public", catalog = "mulkcms")
+public class LegacyJournalTrackback extends PanacheEntityBase {
+
+  @Id
+  @Column(name = "id", nullable = false)
+  public int id;
+
+  @Column(name = "uuid", nullable = false, length = 36)
+  public String uuid;
+
+  @Column(name = "date", nullable = false)
+  public long date;
+
+  @Column(name = "excerpt", nullable = false, length = -1)
+  public String excerpt;
+
+  @Column(name = "title", nullable = true, length = -1)
+  public String title;
+
+  @Column(name = "blog_name", nullable = true, length = -1)
+  public String blogName;
+
+  @Column(name = "url", nullable = true, length = -1)
+  public String url;
+
+  @Column(name = "spam_p", nullable = true)
+  public Boolean spamP;
+
+  @Column(name = "submitter_ip", nullable = false, length = -1)
+  public String submitterIp;
+
+  @Column(name = "submitter_user_agent", nullable = false, length = -1)
+  public String submitterUserAgent;
+
+  @ManyToOne(fetch = FetchType.LAZY)
+  @JoinColumn(name = "entry_id", referencedColumnName = "id", nullable = false)
+  public LegacyJournalEntry journalEntry;
+}
