J’ai créé un importateur Yammer pour quelqu’un et il aimerait qu’il soit disponible publiquement. (Salut @gerhard, je pense que cela relève de votre domaine.) Je n’arrive pas vraiment à comprendre la popularité de Yammer et/ou s’il s’agit de quelque chose qui verra bientôt beaucoup de gens réclamer une nouvelle plateforme ou si la plupart de ces personnes s’attendent simplement à perdre leurs données lorsqu’elles quittent la plateforme.
L’exportation Yammer est un tas de fichiers CSV, donc le script d’importation utilise script/import_scripts/base/generic_database.rb. Il comprend l’importation des MP, ce qui a nécessité l’ajout de quelques tables à generic_database.rb. J’ai pensé qu’il était plus logique d’ajouter un code distinct pour les MP que d’essayer de contraindre le code existant à les gérer et de risquer de le casser pour les autres importateurs qui l’utilisent (zendesk, zendesk_api et answerbase). De plus, les pièces jointes sont gérées différemment de ce qu’elles doivent être dans les scripts qui utilisent generic_database.rb, donc mes tables de MP ne gèrent pas les téléchargements comme les autres (ce que je n’ai pas pu comprendre). J’ai également ajouté une table de téléchargement plutôt que d’utiliser topic_upload et post_upload comme le fait l’importateur générique.
def create_upload_table
@db.execute <<-SQL
CREATE TABLE IF NOT EXISTS upload (
id #{key_data_type} NOT NULL PRIMARY KEY,
user_id INTEGER,
original_filename TEXT,
filename TEXT,
description TEXT,
url TEXT
)
SQL
end
Le code actuel traite les téléchargements lorsqu’il y fait référence dans raw. Il remplace également les références aux utilisateurs par des références Discourse @username. Il gère également certains opengraphobject bizarres et les utilise, s’ils existent, pour générer des titres de sujets (qui manquent à la plupart des sujets dans le dump pour lequel j’ai écrit cela).
Questions :
- Est-ce trop de simplification pour pouvoir répondre à ces questions ?
- Dois-je créer un MP pour le noyau, ou simplement l’inclure comme un dépôt autonome (j’inclurai un script qui copiera le code dans l’arborescence source de Discourse et l’exécutera à partir de là) ?
- Les ajouts à
generic_databasesemblent-ils raisonnables ou devrais-je trouver un moyen d’ajouter à cette classe dans mon script d’importation ou simplement inclure mes fonctions supplémentaires dans mon propre script et le faire référencer simplement le@dbglobal ?