Skip to content

Commit

Permalink
chore: add org update script (#10393)
Browse files Browse the repository at this point in the history
  • Loading branch information
TheSussex authored Jun 11, 2024
1 parent 651610d commit 165bbde
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,10 @@ _clean_old_external_volumes:
( docker volume inspect ${COMPOSE_PROJECT_NAME}_products|grep /rpool/off/clones && docker volume rm ${COMPOSE_PROJECT_NAME}_products ) || true
( docker volume inspect ${COMPOSE_PROJECT_NAME}_product_images|grep /rpool/off/clones && docker volume rm ${COMPOSE_PROJECT_NAME}_product_images ) || true

save_orgs_to_mongodb:
@echo "🥫 Saving exsiting orgs into MongoDB …"
${DOCKER_COMPOSE} run --rm backend perl -I/opt/product-opener/lib /opt/product-opener/scripts/migrations/2024_06_save_existing_orgs_to_mongodb.pl "/mnt/podata/orgs"

#------------#
# Production #
#------------#
Expand Down
49 changes: 49 additions & 0 deletions scripts/migrations/2024_06_save_existing_orgs_to_mongodb.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/usr/bin/perl -w

# This file is part of Product Opener.
#
# Product Opener
# Copyright (C) 2011-2023 Association Open Food Facts
# Contact: [email protected]
# Address: 21 rue des Iles, 94100 Saint-Maur des Fossés, France
#
# Product Opener is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.

use Modern::Perl '2017';
use utf8;
use ProductOpener::Data qw/:all/;
use ProductOpener::Orgs qw/list_org_ids retrieve_org/;

my $orgs_collection = get_orgs_collection();

sub main {
my @orgs = list_org_ids();
my $count = scalar @orgs;
my $i = 0;

foreach my $org_id (@orgs) {
my $org_ref = retrieve_org($org_id);
next if not defined $org_ref;
my $return = $orgs_collection->replace_one({"org_id" => $org_ref->{org_id}}, $org_ref, {upsert => 1});
print STDERR "return $return\n";
$i++;
}

print STDERR "$count organizations to update - $i organizations not empty or deleted\n";
return;
}

main();

exit(0);

0 comments on commit 165bbde

Please sign in to comment.