dev-zoren/geonames

一个与 geonames.org 地理位置服务的 Laravel (php) 包

dev-main 2022-12-27 23:21 UTC

This package is auto-updated.

Last update: 2024-09-28 03:05:18 UTC


README

Latest Stable Version Total Downloads License GitHub issues GitHub forks GitHub stars Travis (.org)

一个用于与 geonames.org 地理位置服务交互的 Laravel (php) 包。

主要版本跳转

我跳过几个主要版本以赶上 Laravel 的主要版本号。这使得事情更加清晰。

注意

为了使这个包“完整”,还有很多工作要做。我已经把它推进到可以用于我下一个项目的程度。随着时间允许,我将改进这个包的文档和测试。感谢理解。

安装

composer require dev-zoren/geonames

然后在 app.php 配置文件的 providers 数组中添加 geonames 提供商

MichaelDrennen\Geonames\GeonamesServiceProvider::class,

之后,运行迁移命令

php artisan migrate

想要安装美国、加拿大和墨西哥的所有 geonames 记录以及拉入英文的特征代码定义文件吗?

php artisan geonames:install --country=US --country=CA --country=MX --language=en

只安装 geonames 数据库中的所有内容吗?

php artisan geonames:install

维护

现在您已经在系统上运行了 geonames 数据库,需要保持其更新。

我有一个更新脚本,您需要在 Laravel 中安排每天运行。

有关如何安排 Laravel artisan 命令的一些信息

https://laravel.net.cn/docs/5.6/scheduling#scheduling-artisan-commands

您可以在以下位置阅读此通知:http://download.geonames.org/export/dump/

"最后修改"时间戳是中欧时间。

geonames 大约在凌晨 3 点中欧时间更新他们的数据。

因此,如果您安排系统在凌晨 4 点中欧时间之后运行 geonames:update artisan 命令,您应该没问题。

我喜欢让服务器运行在 GMT 上。保持一致性。

(中欧时间比格林威治标准时间快 1 小时)

假设您的服务器正在运行在 GMT 上,您的更新命令如下

$schedule->command('geonames:update')->dailyAt('3:00');

更新 artisan 命令将处理 geonames 表的更新和删除。

默认情况下,GeonamesServiceProvider 将在 config('geonames.update_daily_at') 定义的每天运行它。

问题所在

你是否得到这样的东西:1071 指定的键太长

@see https://news.laravel.net.cn/laravel-5-4-key-too-long-error

在您的 AppServiceProvider.php 文件中添加此内容

Schema::defaultStringLength(191);

关于索引的简短说明

这个库包含了许多迁移,其中包含了许多索引。并不是每个人都需要所有的索引。

因此,在安装此库时,运行迁移并删除您不需要的索引。

此外,Laravel 不允许您为 varchar 列上的索引指定键长度。有两个索引受此限制。我不按“Laravel 方式”在这些列上创建索引,而是发送一个原始的手动查询来创建具有正确长度的索引。