Eksport wpisów z bazy danych drupala do pliku tekstowego

Moja strona działała kiedyś na drupalu (potem na bloggerze, potem na pelicanie :) ) Stąd zaistniała potrzeba wyciągnięcia starych wpisów i przywrócenia tych co ciekawszych. W tym celu powstał krótki skrypt SQL.

 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
41
42
43
44

-- drupal-to-plainfile.sql
-- ver. 0.1 by Witold Firlej (https://www.grizz.pl; https://github.com/grizz-pl)
-- get drupal nodes into plain text records with frontmatter
-- after execution just export results to txt/markdown file 

SELECT DISTINCT 
	CONCAT(
	    nr.nid, '-', REPLACE(nr.title, ' ','-'),
		'\n---',
		'\nnid: ', nr.nid,
	    '\nverID: ', nr.vid,
	    '\ntitle: ', nr.title,
	    '\nformat: ', ff.name,
	    '\ntags: ', CONCAT('\n  - ', x.tags),
	    '\ncreated: ', FROM_UNIXTIME(n.created),
	    '\nlastmod: ', FROM_UNIXTIME(n.changed),
	    '\n---\n', nr.body
    ) wpis
FROM node_revisions nr
JOIN term_node tn ON
nr.nid = tn.nid
JOIN node n ON
n.vid = nr.vid
JOIN (
	SELECT
		tn.nid
		, tn.vid
		, GROUP_CONCAT(
			td.name SEPARATOR '\n  - '
		) tags
	FROM
		term_data td
	JOIN term_node tn ON
		td.tid = tn.tid
	JOIN node n ON
		n.vid = tn.vid
	GROUP BY
		nid
) x ON
x.nid = nr.nid
JOIN filter_format ff ON
nr.format = ff.format
ORDER BY nr.nid;

Skrypt jest bardzo prosty. Wynikową tabelę, praktycznie w każdym narzędziu (polecam DBeaver) można wyeksportować do pliku tekstowego.

co da nam np.

 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
41
42
43
44
45
46
47
48
49
50
51
52
53
299-gfo-gallery-generator
---
nid: 299
verID: 793
title: gfo gallery generator
format: Markdown
tags: 
  - Internet/Sieci
  - Foto
  - gfo
  - Python
  - Programowanie
  - Oprogramowanie
  - Linux
  - Komputery
created: 2009-10-02 18:24:53
lastmod: 2010-05-15 10:33:14
---
gfo gallery generator to prosty skrypt pythona generujący galerię opartą na [highslide][] na podstawie zdjęć znajdujących się w podanych katalogach.  Skrypt zrobiony na potrzeby mojej galerii: <http://galeria.firlej.org>
<!-- Links -->
[highslide]: http://highslide.com/
<!--break-->
Możliwości
----------

*   generowanie wieloalbumowej galerii
*   obsługa szablonów
*   osobna strona tytułowa

HowTo
-----

1.   Ściągamy skrypt z <http://github.com/grizz-pl/gfo-gallery-generator/downloads> bądź za pomocą **gita:**

    git clone git://github.com/grizz-pl/gfo-gallery-generator.git  

1.   Ściągamy [highslide][] i rozpakowujemy go do katalogu ***highslide/*** w głównym katalogu **gfo**
1.   tworzymy katalog ***static/***, w którym umieszczamy pliki ***logo.png*** (logo naszej galerii) i ***intro.png*** (zdjecie na stronie głównej)
1.   Modyfikujemy plik ***gfo.conf***
1.   Odpalamy ***./gfo.py*** (z opcją **-v** uzyskamy wysyp informacji o generowanym kodzie)

Program dla każdej podanej sekcji w pliku konfiguracyjnym (co równa się też osobnemu katalogowi) tworzy stronę z albumem + dodatkowo główną stronę dużym zdjęciem.

Projekt - sugestie i problemy:
------------------------------

Strona projektu na **githubie** <http://github.com/grizz-pl/gfo-gallery-generator>  
Sugestie / problemy można zgłaszać poniżej w komentarzach, bądź na stronie: <http://github.com/grizz-pl/gfo-gallery-generator/issues>



<!-- Links -->
[highslide]: http://highslide.com/

Jeżeli skrypt będzie rozwijany, to zmiany znajdziecie na githubie - https://github.com/grizz-pl/drupal-to-plainfile - jednak, to co jest - działa, więc pewnie roszad nie będę wprowadzał.

Załadować komentarze?