redmine & mysql

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

redmine & mysql

Beitrag von fitheach » 14.02.2019 14:07:50

Hallo,

vielleicht kann mir jemand weiterhelfen.

Ich habe eine Redmineinstanz und würde dort gerne das Plugin CMS_light installieren.

Ich habe es im pluginordner abgelegt und mache ein

Code: Alles auswählen

rake redmine:plugins RAILS_ENV=production
rake bricht dann mit

Code: Alles auswählen

Caused by: Mysql2::Error: Table 'msyql_db.cms_pages' doesn't exist
ab.

Ich habe schon den Entwickler von dem Plugin gefragt, aber der findet seid 4 Monaten nicht die Lösung.

Könnt ihr mir bei der Fehlersuche helfen.

Vielen Dank...

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 14.02.2019 14:59:20

Erstmal nachsehn, ob die Datenbank da ist, dann Berechtigungen prüfen. Kann sein, dass der Installer auf dem falschen Account läuft, oder dass localhost statt 127.0.0.1 angesprochen werden und die Berechtigungen entsprechend anders gesetzt sind. Ohne Logs ist das aber nur wildes Raten. Also Debugging hochdrehen und nochmal versuchen.

Edit: typo

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 14.02.2019 15:38:45

Hallo eggy,

ich denke, daran liegt es nicht. Denn andere Plugins kann ich installieren und auch die redmine-instanz würde ja nicht laufen, wenn sie auf die Datenbank nicht zugreifen könnte.

Es geht eher um besagte Tabelle, die wohl irgendwie nicht richtig angelegt wird.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 14.02.2019 15:46:07

denken != wissen
Das eben nachzuschauen kostet Dich maxinal 3 Minuten. Wäre blöd jetzt stundenlang in anderen Richtungen zu suchen, wenn man triviale Fehler mit wenig Mühe ausschliessen kann. Und dann schau in die Logs, dann sollte klar werden, welche Befehle zum Erzeugen versucht werden, und wenn Du Glück hast, auch warum sie nicht ankommen/nicht ausgeführt werden.

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 14.02.2019 22:41:17

Hallo,

ich hatte das ausgeschlossen, aber wenn Du mir schon hilfst, schaue ich noch einmal nach.

In der production.log von redmine steht beim Installieren nichts, was darauf hindeutet. Ich habe extra vor dem einem erneuten Versuch das log verschoben, damit ich nichts übersehe.

Die Fehlermeldung bei rake ist:

Code: Alles auswählen

Migrating redmine_cms (Redmine CMS plugin)...
== 14 RenameContentTypeInCmsPage: migrating ===================================
-- rename_column(:cms_pages, :content_type, :filter_id)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Table 'consens_red.cms_pages' doesn't exist: SHOW FULL FIELDS FROM `cms_pages`
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
...

Caused by:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'consens_red.cms_pages' doesn't exist: SHOW FULL FIELDS FROM `cms_pages`
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/home/consens/.gem/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:317:in `block in execute'
...

Caused by:
Mysql2::Error: Table 'consens_red.cms_pages' doesn't exist
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `_query'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:120:in `block in query'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `handle_interrupt'
/home/consens/.gem/ruby/2.5.0/gems/mysql2-0.4.10/lib/mysql2/client.rb:119:in `query'
/home/consens/.gem/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:317:in `block in execute'
...
Tasks: TOP => redmine:plugins:migrate
(See full trace by running task with --trace)
Wenn Du mir sagen kannst, wo ich noch nachschauen muss, mach ich das gerne.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 14.02.2019 23:29:40

Table 'consens_red.cms_pages' doesn't exist:
Ich würde raten, dass die Installation nur versucht, Daten in die Tabelle zu schreiben, diese aber vorher nicht anlegt bzw nicht anlegen kann.

Du müsstest direkt in der Datenbank nachsehen. Wege sind je nach Umstand etwas anders, grob sollte es so gehn:

Code: Alles auswählen

mysql 
# das startet den client, falls nicht, mysql-client installieren (bzw den von mariadb), ggfs mit -u den user angeben 
show databases;
# zeigt die datenbanken. da musst du die richtige aussuchen, vielleicht consens_red
use datenbank; 
# statt datenbank traegst da jetzt das ein was du eben rausgefunden hast
show tables;
# und da sollte jetzt die cms_pages auftauchen, wenn nicht, muss die vielleicht erstellt werden, eh das Plugin installiert werden soll.
Aber alles nur geraten, kann auch komplett anders sein.

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 15.02.2019 08:41:43

Hallo eggy, danke für die ausführliche Beschreibung.

Ich hatte schon mit phpadmin bzw. adminer nachgeschaut.

Die Tabelle cms_pages gibt es wirklich nicht.

Nur eine "pages", die ist aber von der Standardinstallation, das sehe ich an dem Inhalt.

Das händische Erstellen von Tabellen kenne ich von redmine nicht. In der Installationsanleitung steht auch nichts

In dem CMS_plugin gibt es einen Ordner /DB/migrate/

Dort gibt es die Datei 021_add_cms_pages_lft_and_rgt.rb
mit dem Inhalt

Code: Alles auswählen

class AddCmsPagesLftAndRgt < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
  def change
    add_column :cms_pages, :lft, :integer
    add_column :cms_pages, :rgt, :integer

    add_index :cms_pages, :lft
    add_index :cms_pages, :rgt
  end

end
Es gibt noch die Datei 013_create_cms_page_fields.rb
mit dem Inhalt

Code: Alles auswählen

class CreateCmsPageFields < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
  def change
    create_table :cms_page_fields do |t|
      t.string :name
      t.string :content
      t.integer :page_id
      t.timestamps
    end
    add_index :cms_page_fields, :name
  end
end
Meine Vermutung ist jetzt, dass das Plugin die erforderlichen Tabellen nicht anlegen kann. Warum auch immer. Da ich andere Plugins installieren kann und die Redmine-Instanz auch gut läuft, vermute ich nicht, dass es ein Rechteproblem ist oder die Verbindung zu mysql nicht geht.

Ich hatte in der Vergangenheit immer mal wieder Probleme, weil ich die Datenbank auf utf8mb4 umgestellt hatte. Vielleicht kann das Plugin damit nicht? Es gibt dann immer diese "Spalte ist nicht groß genug".
Ist so eine Idee.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 15.02.2019 09:28:40

Wenn Dir nach weiterer planloser Fehlersuche ist: Tabelle händisch anlegen, dafür sorgen, dass der Datenbankuser, mit dem später zugegriffen wird, die richtigen Berechtigungen erhält. Dann Plugin nochmal neu installieren und schauen, ob Daten in der Tabelle landen.
Würde aber eigentlich sinnvoller sein, das mit den Entwicklern bzw in nem Redmine Forum zu diskutieren.

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: redmine & mysql

Beitrag von heisenberg » 15.02.2019 10:05:11

Ich hatte kurz mal was mit "ActiveRecord" zu tun, als ich mit PHP und dem Laravel Framework gebastelt habe. ActiveRecord ist ein Objektspeichermodell. Man definiert ein Datenmodell(=Migration), welches dann automatisch auf in die verwendete Datenbank(sqlite, mysql, postgres, ...) migriert(=gespeichert) wird. Insofern sind die gezeigten Dateien(021_add_cms_pages_lft_and_rgt.rb, ...) schon mal eine ganz heiße Spur.

Es gab da bei PHP soweit ich weiss Befehle, mit denen man Migrationen anlegen/ändern/löschen kann. Das wird hier bestimmt auch so sein - nur dass die Befehle natürlich anders sind.

Die Fehlermeldung liest sich für mich eher weniger nach einem Zugriffsproblem, als dass da diese Migrationen noch nicht ausgeführt wurden oder nicht vollständig sind. Der von Dir vermutete Fehler, dass er die Tabelle aus irgend einem Grund nicht anlegen kann, ist natürlich auch möglich.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 15.02.2019 12:47:36

Danke für euer Feedback!
Würde aber eigentlich sinnvoller sein, das mit den Entwicklern bzw in nem Redmine Forum zu diskutieren.
Nach oben
Das war mein erster Ansatz vor 4 Monaten. Immerhin hab ich sogar bezahlten Support. Aber es gab halt ein paar Versuche das zu lösen und aktuell seid > 1 Monat funkstille.

Die haben keine Idee, da kann ich auch ein totes Pferd schlagen. Wenn es irgendwo ein aktives Redmine-Forum gibt, gerne her damit. Bei Redmine selbst kommt nur sehr wenig Feedback.
Tabelle händisch anlegen
So richtig weiß ich leider nicht, was ich da anlegen muss.
Migrationen noch nicht ausgeführt wurden oder nicht vollständig sind.
Was kann man da tun?

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 15.02.2019 12:54:51

grep in den Installscripten doch einfach mal nach "CREATE" (mit -i falls es nicht groß geschrieben ist).

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 15.02.2019 13:57:45

In dem Ordner DB/Mirgrate fand sich nach grep das:

Code: Alles auswählen

/home/consens/redmine_yard/db/migrate/001_create_pages.rb:class CreatePages < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/001_create_pages.rb:    create_table :pages do |t|
/home/consens/redmine_yard/db/migrate/002_create_cms_menus.rb:class CreateCmsMenus < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/002_create_cms_menus.rb:    create_table :cms_menus do |t|
/home/consens/redmine_yard/db/migrate/003_create_parts.rb:class CreateParts < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/003_create_parts.rb:    create_table :parts do |t|
/home/consens/redmine_yard/db/migrate/003_create_parts.rb:    create_table :pages_parts do |t|
/home/consens/redmine_yard/db/migrate/006_create_cms_content_versions.rb:class CreateCmsContentVersions < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/006_create_cms_content_versions.rb:    create_table :cms_content_versions do |t|
/home/consens/redmine_yard/db/migrate/008_add_created_at_to_cms_content_version.rb:class AddCreatedAtToCmsContentVersion < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/008_add_created_at_to_cms_content_version.rb:    add_column :cms_content_versions, :created_at, :datetime
/home/consens/redmine_yard/db/migrate/011_create_cms_snippets.rb:class CreateCmsSnippets < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/011_create_cms_snippets.rb:    create_table :cms_snippets do |t|
/home/consens/redmine_yard/db/migrate/012_create_cms_layouts.rb:class CreateCmsLayouts < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/012_create_cms_layouts.rb:    create_table :cms_layouts do |t|
/home/consens/redmine_yard/db/migrate/013_create_cms_page_fields.rb:class CreateCmsPageFields < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/013_create_cms_page_fields.rb:    create_table :cms_page_fields do |t|
/home/consens/redmine_yard/db/migrate/019_add_tagging_migration.rb:    ActiveRecord::Base.create_taggable_table
/home/consens/redmine_yard/db/migrate/023_create_votable_migration.rb:class CreateVotableMigration < Rails.version < '5.1' ? ActiveRecord::Migration : ActiveRecord::Migration[4.2]
/home/consens/redmine_yard/db/migrate/023_create_votable_migration.rb:    ActiveRecord::Base.create_votable_table
Das gesamte Plugin kommt auf 580 "create" Einträge

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 15.02.2019 14:04:48

Also, ich habe mal grep mit "cms_pages" laufen lassen:

Code: Alles auswählen

/home/consens/redmine_yard/db/migrate/010_add_prefix_to_tables.rb:   [b] rename_table :pages, :cms_pages[/b]
/home/consens/redmine_yard/db/migrate/010_add_prefix_to_tables.rb:    add_index :cms_pages, :parent_id
/home/consens/redmine_yard/db/migrate/010_add_prefix_to_tables.rb:    add_index :cms_pages, :name
/home/consens/redmine_yard/db/migrate/010_add_prefix_to_tables.rb:    add_index :cms_pages, :visibility
/home/consens/redmine_yard/db/migrate/010_add_prefix_to_tables.rb:    add_index :cms_pages, :layout_id
/home/consens/redmine_yard/db/migrate/010_add_prefix_to_tables.rb:    rename_table :cms_pages, :pages
/home/consens/redmine_yard/db/migrate/014_rename_content_type_in_cms_page.rb:    rename_column :cms_pages, :content_type, :filter_id
/home/consens/redmine_yard/db/migrate/016_add_slug_to_cms_pages.rb:    add_column :cms_pages, :slug, :string
/home/consens/redmine_yard/db/migrate/016_add_slug_to_cms_pages.rb:    add_index :cms_pages, :slug
/home/consens/redmine_yard/db/migrate/018_add_author_to_cms_pages.rb:    add_column :cms_pages, :author_id, :integer
/home/consens/redmine_yard/db/migrate/020_add_page_date_to_cms_pages.rb:    add_column :cms_pages, :page_date, :timestamp
/home/consens/redmine_yard/db/migrate/021_add_cms_pages_lft_and_rgt.rb:    add_column :cms_pages, :lft, :integer
/home/consens/redmine_yard/db/migrate/021_add_cms_pages_lft_and_rgt.rb:    add_column :cms_pages, :rgt, :integer
/home/consens/redmine_yard/db/migrate/021_add_cms_pages_lft_and_rgt.rb:    add_index :cms_pages, :lft
/home/consens/redmine_yard/db/migrate/021_add_cms_pages_lft_and_rgt.rb:    add_index :cms_pages, :rgt
/home/consens/redmine_yard/db/migrate/024_add_lock_version_to_cms_pages.rb:    add_column :cms_pages, :lock_version, :integer, :default => 0, :null => false
/home/consens/redmine_yard/db/migrate/025_change_pages_content_limit.rb:  	change_column :cms_pages, :content, :text, :limit => 4294967295
/home/consens/redmine_yard/db/migrate/025_change_pages_content_limit.rb:  	change_column :cms_pages, :content, :text
Dabei ist mir etwas aufgefallen, was ich in der ersten Zeile fett makiert habe.
Pages wird umbeannt. Das macht auch Sinn, weil das cms_plugin die Steuerung der Standardwebseiten übernimmt. Meint ihr, meine Vermutung ist richtig? Dann müsste ich nur die Tabelle umbenennen und es nochmal probieren.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 15.02.2019 14:44:12

Klingt irgendwie logisch. Allerdings scheint es darüber hinaus noch weitere Spalten anzulegen. Nur umbenennen wird also nicht reichen. Denk ich. Aber vielleicht bringt es was, diese Idee und die Vermutung bzgl des utf8mb4 an den Support weiterzugeben?

Und, sorry, wenn ich schonwieder damit anfang, vielleicht liegts doch an den Berechtigungen:
https://dev.mysql.com/doc/refman/8.0/en ... table.html sagt
RENAME TABLE renames one or more tables. You must have ALTER and DROP privileges for the original table, and CREATE and INSERT privileges for the new table.
Schau doch noch mal, ob Dein Datenbankuser auch das DROP hat.
Geht im mysql client mit "show grants" (https://dev.mysql.com/doc/refman/8.0/en ... rants.html).

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 15.02.2019 14:53:02

Hallo eggy,

lehrreich ist der Thread für mich auf jeden Fall:

Code: Alles auswählen

MariaDB [(none)]> SHOW GRANTS FOR 'consens';
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for consens@%                                                                                                                                                                                                                  |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'consens'@'%' IDENTIFIED BY PASSWORD '**'                                                                                                                                |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `consens`.* TO 'consens'@'%'    |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `consens\_%`.* TO 'consens'@'%' |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Ich habe jetzt die Table umbenannt. Ein paar rows gelöscht und eine angelegt.

Der Installationsprozess lief fehlerfrei durch, ABER leider nicht erfolgreich. Ich vermute, das Routing außerhalb der Datenbank ist fehlerhaft. Ich glaube wenn die Entwickler da nicht helfen, bleibt nur eine Neuinstallation :,-(

Danke für euren Input!
Zuletzt geändert von fitheach am 15.02.2019 15:06:49, insgesamt 2-mal geändert.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: redmine & mysql

Beitrag von eggy » 15.02.2019 14:56:15

Das "by PASSWORD" sollte man besser nicht veröffentlichen. Lieber vorsichtshalber ändern.

Benutzeravatar
fitheach
Beiträge: 551
Registriert: 22.11.2006 15:17:32
Wohnort: Bonn

Re: redmine & mysql

Beitrag von fitheach » 15.02.2019 15:06:20

danke! hab ich übersehen!

Antworten