Is it possible to disable all title/body validations?

I am working on a script for importing large numbers of posts into Discourse. I have been spending a lot of time managing problems like title or body fields being too short, titles being all-caps, titles consisting of unusual characters etc. For some I have found settings, e.g. allowing all-caps titles. But I still have some special cases causing trouble, like posts with this body: β€œ?” Despite setting min_post_length to 1, this is rejected and if I understand correctly this has to do with it being specifically a question mark. In any case, I have run into several of these cases with no obvious way of dealing with them by changing a setting.

My question is if it is possible to disable all similar validations, e.g. the Sentinel features and related things, and instead simply accept any string for the one-off purpose of running a batch importing job. If not, is there a list of all individual settings which are relevant to this? I have spent some time searching this forum and elsewhere but have had no luck so far. Sorry if this is old hat to you guys, in that case I would be very grateful for a pointer to where this has been explained.

Note that writing posts differently is not an option for me since I am importing tens of thousands of posts which are like they are. I certainly want to have those features, just not during the initial import. I also can not skip posts just because the are weird (e.g. consist of β€œ?”) since this would cause other issues, e.g. in some cases such posts have replies made to them and I need to import the parent to properly import the children etc.

PS. I will be publishing an extensive update to an import script which I know will be useful to many who are in a similar situation, I just need to iron out a few more kinks first. The deadline for the stuff I am working on for my own project is December 31 and I plan to make a pull request to an existing but not well updated importer project in January.

1 Mi Piace

Most importers skip validations by using the base importer.

https://github.com/discourse/discourse/blob/master/script/import_scripts/base.rb#L497

4 Mi Piace

Brilliant! Looks like exactly the thing I am after. Thank you very much, @sam!

1 Mi Piace